A small warning for anyone wanting to use this in a setting with legal requirements:
> Please note that the term “sync” in Bichon may be misleading—“download” might be more accurate. [1]
If an email is deleted before bichon can download it, then it may not get archived. Most of the time the legal requirements are, that all emails hitting an inbox have to be archived, regardless of user action.
For those cases, a solution like mailpiler is better. Just BCC any incoming and outgoing mail to mailpiler and that is it.
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.
Raise your hand if you read the headline first as:
"Bitcoin: A leightweight, high-performance... Rust email" - then I re-read because I was irritated because of the first Bitcoin token and then adding email :-D LOL
Similar to Bichon, it also has a commercial license[1]:
> EmailEngine is not free open-source software. It is "source available" software, meaning you can view and copy the source code, but you need a paid subscription[2] to run it beyond the free 14-day trial. Each EmailEngine instance comes with this trial, so you can test EmailEngine without any commitment.
EmailEngine is based on ImapFlow[3], a modern and easy-to-use IMAP client library for Node.js that is MIT-licensed.
EmailEngine author here. The commenter tried the EmailEngine trial back in 2024 and appears to have had a negative experience. Since then, he’s repeatedly criticized EmailEngine and related components like the ImapFlow IMAP library, often while promoting his own product.
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.
It's slow, unreliable, very feature-limited, and extremely expensive for what it is.
Especially these days, you could vibe-code something an order of magnitude better within a day or two and not be locked into a single author's rat's nest of code.
Ah this is so close. If it could have a s3 backend for storage of the email blobs (should be trivial since the email files are just key values from email id to email bytes) one could use it as a backup tool, too.
Author, is anything like that possible/planned? (the index itself can stay filesystem only)
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.
Thank god! I hacked together some awful pipeline where Sieve copies mail to a folder and a python script read, stored, and deleted the email. Super fragile, using an email folder as a queue kinda sucked.
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.
actually the rustmailer licensing is a bit confusing. The license file in the repo has the text of the BSD Zero and Apache license but the README describes it as "source-available"?
I read the license MD and there are some clauses that make it incompatible with Apache. I think you might just have seen the disclosure text for Apache/BSD zero.
I’m been meaning to build something like this myself. Seems like this was designed to be run on a server, however. What if I want to run it locally on a laptop that’s not always on? Does it recover gracefully from restarts and such? Is it a SQLite database I can query myself? Does it have an immutable archive/backup mode with trash recovery?
Sorry, I don't know all the answers. However, I do know this (from the README):
> Core Engine (Storage & Search): Tantivy[1]
> Acts as both the primary storage for email content and the full-text search index. This unified approach ensures high performance and eliminates data redundancy.
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.
If looking for local email, why not a traditional client (thunderbird, claws, even outlook) or the more flexible/cli friendly maildir and notmuch? There are a bunch of front ends, including WebUIs https://notmuchmail.org/frontends/
Is what you're looking for a pretty good fit for how email was originally used? Or am missing something obvious
Actually, that is what I would like, but if I use Thunderbird on my Maildirs (served by Dovecot), the search (particularly in the mail body) is not really feasible. Perhaps there is a search integration for Dovecot that I am not aware of??
A small warning for anyone wanting to use this in a setting with legal requirements:
> Please note that the term “sync” in Bichon may be misleading—“download” might be more accurate. [1]
If an email is deleted before bichon can download it, then it may not get archived. Most of the time the legal requirements are, that all emails hitting an inbox have to be archived, regardless of user action.
For those cases, a solution like mailpiler is better. Just BCC any incoming and outgoing mail to mailpiler and that is it.
[1] https://github.com/rustmailer/bichon/wiki/FAQ-(Frequently-As...
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.
Raise your hand if you read the headline first as:
"Bitcoin: A leightweight, high-performance... Rust email" - then I re-read because I was irritated because of the first Bitcoin token and then adding email :-D LOL
Here is a very similar project: https://emailengine.app/
Similar to Bichon, it also has a commercial license[1]:
> EmailEngine is not free open-source software. It is "source available" software, meaning you can view and copy the source code, but you need a paid subscription[2] to run it beyond the free 14-day trial. Each EmailEngine instance comes with this trial, so you can test EmailEngine without any commitment.
EmailEngine is based on ImapFlow[3], a modern and easy-to-use IMAP client library for Node.js that is MIT-licensed.
[1] https://github.com/postalsys/emailengine/blob/master/LICENSE...
[2] https://postalsys.com/plans
[3] https://github.com/postalsys/imapflow
For anyone reading, I would highly recommend steering clear of EmailEngine.
Why?
EmailEngine author here. The commenter tried the EmailEngine trial back in 2024 and appears to have had a negative experience. Since then, he’s repeatedly criticized EmailEngine and related components like the ImapFlow IMAP library, often while promoting his own product.
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.
Yes indeed. The criticism is well-founded and comes from months of experience with the product.
It's slow, unreliable, very feature-limited, and extremely expensive for what it is.
Especially these days, you could vibe-code something an order of magnitude better within a day or two and not be locked into a single author's rat's nest of code.
I've got bichons, and they're great dogs.
Ah this is so close. If it could have a s3 backend for storage of the email blobs (should be trivial since the email files are just key values from email id to email bytes) one could use it as a backup tool, too.
Author, is anything like that possible/planned? (the index itself can stay filesystem only)
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.
Thank god! I hacked together some awful pipeline where Sieve copies mail to a folder and a python script read, stored, and deleted the email. Super fragile, using an email folder as a queue kinda sucked.
Bichons and Rust? I'm already sold!
Note the rustmailer project mentioned is heavily proprietary licensed. Don't expect to be able to use any of this.
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.
RustMailer (a separate project) has a commercial license: https://github.com/rustmailer/rustmailer/blob/main/LICENSE
> RustMailer is source-available. The code is open on GitHub, but requires a valid commercial license key for production use.
License Purchase: https://rustmailer.com/pricing
The mention of BSD/Apache is from here[1] and looks to be a listing of open-source licenses that this project uses.
[1] https://github.com/rustmailer/rustmailer/blob/main/license.h...
actually the rustmailer licensing is a bit confusing. The license file in the repo has the text of the BSD Zero and Apache license but the README describes it as "source-available"?
I read the license MD and there are some clauses that make it incompatible with Apache. I think you might just have seen the disclosure text for Apache/BSD zero.
This one appears to be AGPL and safe to use, but I just read the main project license and frowned. I'm not sure I understand who that project is for.
Bichon is in fact AGPL: https://github.com/rustmailer/bichon/blob/main/LICENSE
It must not be using any RustMailer code.
If it's the same author they can reuse the code. They can copy the code but they can't link it.
I’m been meaning to build something like this myself. Seems like this was designed to be run on a server, however. What if I want to run it locally on a laptop that’s not always on? Does it recover gracefully from restarts and such? Is it a SQLite database I can query myself? Does it have an immutable archive/backup mode with trash recovery?
Sorry, I don't know all the answers. However, I do know this (from the README):
> Core Engine (Storage & Search): Tantivy[1] > Acts as both the primary storage for email content and the full-text search index. This unified approach ensures high performance and eliminates data redundancy.
[1] https://github.com/quickwit-oss/tantivy
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.
If looking for local email, why not a traditional client (thunderbird, claws, even outlook) or the more flexible/cli friendly maildir and notmuch? There are a bunch of front ends, including WebUIs https://notmuchmail.org/frontends/
Is what you're looking for a pretty good fit for how email was originally used? Or am missing something obvious
Actually, that is what I would like, but if I use Thunderbird on my Maildirs (served by Dovecot), the search (particularly in the mail body) is not really feasible. Perhaps there is a search integration for Dovecot that I am not aware of??
I just learned that I can enable full text search on the server on Dovecot through Xapian, which is now indexing..!