mail2couch/rust/Cargo.toml
Ole-Morten Duesund 2cd65fd137 feat: implement just-based build system with distinct binary names
Replace Makefile with justfile for better build management:

Build System Changes:
- Add comprehensive justfile with recipes for both implementations
- Configure Go to build as `mail2couch-go`
- Configure Rust to build as `mail2couch-rs` via Cargo.toml
- Add universal build, test, clean, and install recipes
- Include development convenience recipes and utility commands

New Justfile Features:
- `just build` - builds both implementations
- `just install` - installs both to /usr/local/bin
- `just test` - runs tests for both implementations
- `just sizes` - shows binary size comparison
- `just versions` - compares version outputs
- `just --list` - shows all available recipes

Documentation Updates:
- Update CLAUDE.md with justfile usage examples
- Replace make commands with just equivalents
- Add new utility commands (sizes, versions)
- Update IMPLEMENTATION_COMPARISON.md deployment sections

Benefits of just over make:
- Better command-line interface with `--list`
- More intuitive recipe syntax
- Better suited for development workflows
- Cross-platform compatibility
- Built-in help and documentation

Binary Naming:
- Go implementation: `mail2couch-go` (11M)
- Rust implementation: `mail2couch-rs` (8.3M)
- Clear distinction prevents conflicts
- Parallel installation support

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-03 19:01:42 +02:00

69 lines
No EOL
1.4 KiB
TOML

[package]
name = "mail2couch"
version = "0.1.0"
edition = "2021"
description = "A powerful email backup utility that synchronizes mail from IMAP accounts to CouchDB"
license = "MIT"
repository = "https://github.com/yourusername/mail2couch"
keywords = ["email", "backup", "imap", "couchdb", "sync"]
categories = ["email", "database"]
[dependencies]
# Serialization
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
# Date/time handling
chrono = { version = "0.4", features = ["serde"] }
# HTTP client for CouchDB
reqwest = { version = "0.11", features = ["json"] }
# Async runtime
tokio = { version = "1.0", features = ["full"] }
# Error handling
thiserror = "1.0"
anyhow = "1.0"
# Configuration
config = "0.13"
# IMAP client for email retrieval (using async-std compatible version)
async-imap = "0.9"
async-std = { version = "1.12", features = ["attributes"] }
# TLS support for secure IMAP connections
async-native-tls = "0.5"
# Email parsing with MIME support
mail-parser = "0.6"
# Logging
log = "0.4"
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"
# URL encoding for document IDs
urlencoding = "2.1"
[dev-dependencies]
# Testing utilities
tokio-test = "0.4"
tempfile = "3.0"
[lib]
name = "mail2couch"
path = "src/lib.rs"
[[bin]]
name = "mail2couch-rs"
path = "src/main.rs"