It’s a great honor to be able to talk with Andris. A few months ago I learned that the author of EmailEngine not only created EmailEngine, but is also behind many foundational Node.js email libraries that are widely used. My own projects, RustMailer and Bichon, are built on the shoulders of many great Rust email libraries. EmailEngine is undoubtedly a success, and Andris has spent years quietly and diligently contributing to these core libraries. I have deep respect for you.
Bichon connects to the IMAP server via IMAP and uses a sync interval, for example 10 minutes. Every 10 minutes, Bichon downloads emails from the IMAP server to the local machine, then stores and indexes them. If an email is permanently deleted within that interval, Bichon has no way to detect it. That is indeed how Bichon currently works.
IMAP IDLE tends to be unstable and unreliable in real-world deployments, especially for long-running background services. It also introduces significant operational and implementation complexity, which makes it harder to maintain and reason about. For a system like Bichon, a simpler diff-based approach is usually easier to operate and more predictable.
Bichon can run on a laptop, and restarts or reboots are not a problem — you just need to make sure it starts automatically when the system boots. It is a standalone executable that is configured via command-line arguments or environment variables.
I’ve also been considering packaging it as a desktop application so that non-technical users can use it more easily, since there are Rust projects that can help wrap Bichon into a desktop app.
What I would like is an app that I can let loose on my Maildir directory and indexes and allows search. It doesn't need to receive mails or download (or send) them.
First, rustmailer is my GitHub username. Under this GitHub account there are two main projects: RustMailer and Bichon.
RustMailer is a middleware product with the same name. It is commercially licensed. I hope it can help developers save time on email-related development and also generate a bit of income for me, so this middleware requires a license key to run long-term.
Bichon, on the other hand, is an independent project built on the experience of developing RustMailer. It does reuse a lot of similar code, but it is licensed under the AGPL. These are two completely different projects. RustMailer provides many API interfaces similar to EmailEngine and is positioned as middleware, while Bichon is an email archiving (or unified search) project.
Bichon is positioned as a permanently free project. Users never need to worry that if you use Bichon today you will be asked to pay later — you can use it with confidence, and all of its code is fully open and transparent.
I am the author of Bichon. Long-term backup and permanent archival features are not currently on Bichon’s roadmap, but you’re very welcome to open a GitHub issue to share your idea. Bichon is entirely driven by user needs, and any good suggestions or plans can be adopted and implemented.
It’s similar to Nylas and EmailEngine, but self-hosted.
RustMailer doesn’t rely on Redis and uses less memory — great if you want full control and better cost-efficiency.