Hacker Newsnew | past | comments | ask | show | jobs | submit | rustmailer's commentslogin

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.


Thanks, and best of luck with Rustmailer! I believe there’s plenty of room for multiple solutions in this space.


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 has mechanisms to notify clients about incoming emails (IIRC IMAP IDLE), have you considered implementing those?


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.


Could you use IDLE to trigger the diffs?


You are right.


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.


You can check out https://github.com/rustmailer/bichon/wiki/Using-Bichonctl-Fo... — it explains how to use bichonctl to batch-import .eml files into Bichon. This makes it easy to ingest Maildir or any folder of EMLs for indexing and search.


I’m the author of Bichon, so let me clarify this.

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.


*Bichon: A Lightweight, Standalone Rust Email Archiver & Search Tool*

*Lightweight & Standalone*

* Pure Rust, single-machine application—no external database required. * Includes a WebUI for intuitive management.

*Multi-Account Management*

* Synchronize and download emails from multiple accounts. * Flexible selection: by date range, number of emails, or specific mailboxes.

*IMAP & OAuth2 Authentication*

* Supports IMAP password or OAuth2 login. * WebUI for OAuth2 authorization with automatic token refresh (Gmail, Outlook). * Supports network proxies and automatic IMAP server discovery.

*Unified Multi-Account Search*

* Search across all accounts by mailbox, sender, attachments, size, date, subject, or body.

*Tags & Facets*

* Organize emails with tags backed by Tantivy facets for fast filtering.

*Compressed & Deduplicated Storage*

* Emails stored efficiently with transparent compression and deduplication. * Emails can be read directly without extra steps.

*Email Management & Viewing*

* Bulk cleanup, download as EML or attachments, view full conversation threads.

*Dashboard & Analytics*

* Visualize email counts, timelines, top senders, largest emails, and account rankings.

*OpenAPI Support*

* Full OpenAPI documentation. * Access token authentication for programmatic access.


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.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: