[dev] dmc news

From: pancake <pancake_AT_youterm.com>
Date: Mon, 9 Nov 2009 23:49:52 +0100

Hello everyone!

I'm writing this lines because the delayed release of dmc that
was announced few mails ago.

The reason for the lagged release is because of the lack of time
to finish the design and implementation :(

We plan to release it before the end of the year ;) hopefully
before the end of this month.

The current status of the project is not to be released. I know
that many of you are interested in the code to start playing with
it, but I want to get a working proof of concept with mostly
decent code before pushing it to the community.

Nibble and me have been working on it and actually there's support for:

  - plain
  - ssl (no certificate check yet)
  - no starttls support (but can be easily implemented)

Supported mail sources:
  - pop3: 116 LOC
  - imap4: 221 LOC
  - mbox: 150 LOC
  - mdir: 80 LOC

Attachments support:
  - dmc-pack: handles packing/unpacking of attachments (150 LOC)

Addressbook support:
  - dmc can read/edit a simple addressbook file

Multiple account support:
  - Multiple accounts can be configured

  - dmc-filter allows to filter body, and add/get/remove headers
    from stdin. It is 63 LOC.

Tagging support
  - dmc-tag: (120LOC) handles a database of files and tags. it
    can get all tags matching N tags (AND op)

Sending mails:
  - Only msmtp is supported atm. But !mail and native smtp
    protocols will be supported at some point (0.2)

SLOCCount measures the project in 1262 LOC.

All those mail source applications understand unix-like commands from
stdin and throw status messages to stdout and command output body to
stderr. This way you can use them as shell applications or manage
them as daemons. (This is what 'dmc start' does)

I don't really think the project can bypass the 2kLOC limit, and
actually the whole project consists in 9 programs that interact
together using fifos and pipes. So it opens many scripting
possibilities, but enforces a centralized management using the
root 'dmc' program.

Some of those programs are written in C, and some other in shellscript,
But the plan is to rewrite everything in C at some point.

The missing points before 0.1 are:

  - standarized output for all protocol handlers
  - basic unidirectional sync support for pop3/imap4

Syncronization methods are unidirectional and limited atm. We don't
plan to get everything working for 0.1 ;)

In the future I want to manage online and offline accounts, thanks
to the daemons you can recycle a single connection along the time
or just use a local cache, so you can work offline and then resync
directories when you get online. All this information is stored
inside ~/.dmc.

I have also started to write a graphical interface. I have choosed
Gtk and Vala for it, but all the features will be accessible from
commandline. I don't plan to write a ncurses frontend at the moment,
but shouldn't be hard to do. (yeah I suck ;) but the gtk gui will
be keyboard friendly. I'm not sure how it will work with large
email boxes, but the mails can be automatically tagged to get reduced
views of the whole mail box.

I have attached the documents explaining the way how the protocol
programs can be used and another describing the GUI panel layouts.

Let me know your wishes and ideas.


Received on Mon Nov 09 2009 - 22:49:52 UTC

This archive was generated by hypermail 2.2.0 : Mon Nov 09 2009 - 23:00:02 UTC