Files
bichon/README.md
rustmailer 3ab32f6a38 update
2025-11-19 03:32:52 +08:00

4.4 KiB

🐶 Bichon

Minimal, High-Performance Email Archiving & Management System in Rust

Release Docker License DeepWiki

Bichon is a minimal, high-performance, standalone Rust email archiver with a built-in WebUI.
It runs as a single binary, requires no external dependencies, and provides fast, efficient email archiving, management, and search.


🚀 Features

Lightweight & Standalone

  • Pure Rust, single-machine application.
  • No external database required.
  • Includes 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.
  • Built-in WebUI for OAuth2 authorization, including automatic token refresh (e.g., Gmail, Outlook).
  • Supports network proxy for IMAP and OAuth2.
  • Automatic IMAP server discovery and configuration.
  • Powerful search across all accounts:
    account, mailbox, sender, attachment name, has attachments, size, date, subject, body.

🏷️ Tags & Facets

  • Organize archived emails using tags backed by Tantivy facets.
  • Efficiently filter and locate emails based on these facet-based tags.

💾 Compressed & Deduplicated Storage

  • Store emails efficiently with transparent compression and deduplication—emails can be read directly without any extra steps.

📂 Email Management & Viewing

  • Bulk cleanup of local archives.
  • Download emails as EML or attachments separately.
  • View and browse emails directly.

📊 Dashboard & Analytics

  • Visualize email statistics: counts, time distribution, top senders, largest emails, account rankings.

🛠️ OpenAPI Support

  • Provides OpenAPI documentation.
  • Access token authentication for programmatic access.

Bichon is designed for speed, simplicity, and efficiency, letting you manage and archive emails effortlessly.

🚀 Quick Start

# Pull the image
docker pull rustmailer/bichon:latest

# Create data directory
mkdir -p ./bichon-data

# Run container
docker run -d \
  --name bichon \
  -p 15630:15630 \
  -v $(pwd)/bichon-data:/data \
  -e RUSTMAILER_LOG_LEVEL=info \
  -e RUSTMAILER_ROOT_DIR=/data \
  rustmailer/bichon:latest

Access http://localhost:15630 to start using Bichon.

Binary Deployment

Download the appropriate binary for your platform from the Releases page:

  • Linux (GNU): bichon-x.x.x-x86_64-unknown-linux-gnu.tar.gz
  • Linux (MUSL): bichon-x.x.x-x86_64-unknown-linux-musl.tar.gz
  • macOS: bichon-x.x.x-x86_64-apple-darwin.tar.gz
  • Windows: bichon-x.x.x-x86_64-pc-windows-msvc.zip

Extract and run:

# Linux/macOS
./bichon --bichon-root-dir /tmp/bichon-data

# Windows
.\bichon.exe --bichon-root-dir e:\bichon-data

📖 Documentation

Under construction. Documentation will be available soon.

🛠️ Tech Stack

  • Backend: Rust + Poem
  • Frontend: React + TypeScript + Vite + ShadCN
  • Storage: Native_DB
  • Search Engine: Tantivy
  • Email Protocols: IMAP (Password & OAuth2)

🤝 Contributing

Issues and Pull Requests are welcome!

📄 License

This project is licensed under AGPLv3.


Made with ❤️ by rustmailer.com