I am happy to announce Stalwart JMAP [1], an open-source JSON Meta Application Protocol server that aims to be scalable, robust and secure. Some of its key features are:
- JMAP Core, JMAP Mail and JMAP over WebSocket full compliance.
- IMAP4 rev2/1 support via Stalwart IMAP, an imap-to-jmap proxy [2].
- Scalable and fault tolerant: consensus over Raft, node autodiscovery over gossip and read-only replicas.
- RocksDB backend with full-text search support in 17 languages.
- OAuth 2.0 authorization code and device authorization flows.
- Domain Keys Identified Mail (DKIM) message signing.
- Written in Rust.
- No third-party software required to run or scale.
The next item on the roadmap is to release an SMTP server in Rust with the goal of making self-hosting an e-mail server much simpler.
Any comments or suggestions are more than welcome!
[1]: https://github.com/stalwartlabs/jmap-server
[2]: https://github.com/stalwartlabs/imap-server
I also work on a Rust IMAP server that is far from being as feature complete as yours. I also chose your `mail-parser` library to parse RFC822/5822, but we observed that in many cases, we did not have enough information to build some BODY/BODYSTRUCTURE responses. We also discovered that line count and many details are not very obvious on IMAP, did you run some tests to compare your IMAP server outputs to existing servers? Or, more generally, what is your approach to ensure compatibility / integration with the existing email ecosystem?
In any case, congratulation for your project, we will follow it closely! I experimented how big these protocols became with all their extensions, this is an impressive work!
[1]: https://github.com/Ekleog/kannader