-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Summary
Evaluate rustic-rs as a potential replacement or enhancement to the current backup system.
Current State
The backup system (python/memory_mcp/backup_manager.py) currently supports:
LocalBackupStrategy- File-based backups with compressionEncryptedBackupManager- ChaCha20-Poly1305 encryption via system keyring- Retention policies and integrity verification
Why rustic-rs?
| Feature | Current | rustic-rs |
|---|---|---|
| Deduplication | ❌ None | ✅ Content-defined chunking |
| Cloud backends | ❌ Local only | ✅ S3, B2, Azure, GCS, etc. |
| Incremental backups | ✅ Only changed chunks | |
| Concurrent access | ❌ Lock required | ✅ Lock-free operations |
| Encryption | ✅ ChaCha20-Poly1305 | ✅ AES-256-CTR |
| Restic compatibility | ❌ No | ✅ Full repo format support |
Potential Benefits
- Storage efficiency - Deduplication could reduce backup size 50-80% for typical memory/vault data
- Cloud sync - Native support for remote storage backends
- Multi-machine - Lock-free design enables concurrent backups from multiple Claude sessions
- Ecosystem - Users with existing restic infrastructure get instant integration
Concerns
- Beta status - rustic acknowledges missing regression tests
- Binary dependency - Would need to bundle or require separate install
- Complexity - Current use case (SQLite + Vault files) may not warrant full backup tool
Proposed Implementation
- Create
RusticBackupStrategyimplementing existingBackupStrategyABC - Optional feature flag:
MEMORY_BACKUP_ENGINE=rustic - Fallback to
LocalBackupStrategyif rustic unavailable - Migration path from existing backups to rustic repos
When to Prioritize
Consider implementing when users need:
- Cloud backup support
- Multi-machine memory sync
- Large vault archives (100MB+)
- Restic ecosystem integration
References
- rustic-rs: https://github.com/rustic-rs/rustic
- restic repo format: https://restic.readthedocs.io/en/stable/100_references.html
- Current backup implementation:
python/memory_mcp/backup_manager.py
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels