feat: implement complete Rust version of mail2couch

- Add comprehensive Rust implementation matching Go functionality
- Configuration loading with automatic file discovery
- GNU-style command line parsing with clap (--config/-c, --max-messages/-m)
- CouchDB client integration with document storage and sync metadata
- IMAP client functionality with message fetching and parsing
- Folder filtering with wildcard pattern support (*, ?, [abc])
- Message filtering by subject, sender, and recipient keywords
- Incremental sync functionality with metadata tracking
- Bash completion generation matching Go implementation
- Cross-compatible document schemas and database structures
- Successfully tested with existing test environment

Note: TLS support and advanced email parsing features pending

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Ole-Morten Duesund 2025-08-02 19:52:14 +02:00
commit 4835df070e
9 changed files with 1901 additions and 8 deletions

View file

@ -29,8 +29,9 @@ anyhow = "1.0"
# Configuration
config = "0.13"
# IMAP client (when implementing IMAP functionality)
# async-imap = "0.9" # Commented out for now due to compatibility issues
# IMAP client for email retrieval (using async-std compatible version)
async-imap = "0.9"
async-std = { version = "1.12", features = ["attributes"] }
# Logging
log = "0.4"
@ -39,9 +40,16 @@ env_logger = "0.10"
# CLI argument parsing
clap = { version = "4.0", features = ["derive"] }
# File system utilities
dirs = "5.0"
# Pattern matching for folder filters
glob = "0.3"
[dev-dependencies]
# Testing utilities
tokio-test = "0.4"
tempfile = "3.0"
[lib]
name = "mail2couch"