uiri / SEGIMAP

IMAP (and LMTP) Server written in Rust
MIT License
32 stars 6 forks source link

Refactor Into Libraries and Executable #8

Open indiv0 opened 9 years ago

indiv0 commented 9 years ago

I think that it might be beneficial to remove the non-IMAP specific parts to their own libraries to reduce code clutter and complexity.

Specifically, we should move the LMTP portion to it's own project, and possibly start an SMTP project (who's up for a full-Rust mail stack :D)?

Additionally, the common library stuff necessary for all parts the stack probably needs to be moved out (e.g. Message module and parsing, as it's relevant to all portions (I think..)).


indiv0 commented 9 years ago

So some libraries I think we can pull out:

uiri commented 9 years ago

As far as a separate MIME/RFC2822 message library, I'm inclined to agree.

LMTP is primarily useful for IMAP and POP3 implementations so that they can receive messages. How much can we decouple it? How would the LMTP and the IMAP server communicate?

indiv0 commented 9 years ago

@uiri on second thought, yeah, you're right. I don't think decoupling LMTP is really beneficial in this case.

indiv0 commented 9 years ago

@uiri for the MIME/RFC2822 message library, will it be a separate repo or a sub-crate in this project?

Also, any more ideas for things to refactor?

indiv0 commented 9 years ago

We could also do something with Auth and User, perhaps move them to an authentication module, as they're inherently independent of the rest of the code?