mail2couch/rust/config-test-rust.json
Ole-Morten Duesund 7b98efe06b feat: add comprehensive Rust implementation with feature parity
This commit completes the Rust implementation of mail2couch with full feature
parity to the Go version, including:

- Complete IMAP client with TLS support and retry logic
- Advanced email parsing with MIME multipart support using mail-parser
- Email attachment extraction and CouchDB storage
- Sync mode implementation with deleted message handling
- Enhanced error handling and retry mechanisms
- Identical command-line interface with bash completion
- Test configurations for both implementations

The Rust implementation now provides:
- Memory safety and type safety guarantees
- Modern async/await patterns with tokio/async-std
- Comprehensive error handling with anyhow/thiserror
- Structured logging and progress reporting
- Performance optimizations and retry logic

Test configurations created:
- rust/config-test-rust.json - Rust implementation test config
- go/config-test-go.json - Go implementation test config
- test-config-comparison.md - Detailed comparison documentation
- test-both-implementations.sh - Automated testing script

Both implementations can now be tested side-by-side with identical
configurations to validate feature parity and performance.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-02 20:27:14 +02:00

74 lines
No EOL
1.7 KiB
JSON

{
"couchDb": {
"url": "http://localhost:5984",
"user": "admin",
"password": "password"
},
"mailSources": [
{
"name": "Rust Wildcard All Folders Test",
"enabled": true,
"protocol": "imap",
"host": "localhost",
"port": 3143,
"user": "testuser1",
"password": "password123",
"mode": "archive",
"folderFilter": {
"include": ["*"],
"exclude": ["Drafts", "Trash"]
},
"messageFilter": {
"subjectKeywords": ["meeting", "important"],
"senderKeywords": ["@company.com"]
}
},
{
"name": "Rust Work Pattern Test",
"enabled": true,
"protocol": "imap",
"host": "localhost",
"port": 3143,
"user": "syncuser",
"password": "syncpass",
"mode": "sync",
"folderFilter": {
"include": ["Work*", "Important*", "INBOX"],
"exclude": ["*Temp*"]
},
"messageFilter": {
"recipientKeywords": ["support@", "team@"]
}
},
{
"name": "Rust Specific Folders Only",
"enabled": true,
"protocol": "imap",
"host": "localhost",
"port": 3143,
"user": "archiveuser",
"password": "archivepass",
"mode": "archive",
"folderFilter": {
"include": ["INBOX", "Sent", "Personal"],
"exclude": []
},
"messageFilter": {}
},
{
"name": "Rust Subfolder Pattern Test",
"enabled": false,
"protocol": "imap",
"host": "localhost",
"port": 3143,
"user": "testuser2",
"password": "password456",
"mode": "archive",
"folderFilter": {
"include": ["Work/*", "Archive/*"],
"exclude": ["*/Drafts"]
},
"messageFilter": {}
}
]
}