AVC (Archive Version Control) is a high-performance, Git-inspired version control system written in C. Designed for speed, efficiency, and simplicity, AVC combines the familiar Git workflow with modern optimizations including multi-threaded operations and intelligent compression.
- Build & Installation: see
BUILD.md - Usage Guide: see
USAGE.md - Contributing: see
CONTRIBUTING.md
| Operation | AVC | Git | Performance |
|---|---|---|---|
| Init | 0.001s | 0.001s | ⚡ Equal |
| Add | 0.486s | 1.270s | ⚡ 2.6x faster |
| Commit | 0.053s | 0.244s | 🚀 4.6x faster |
| Reset | 0.323s | 0.497s | ⚡ 1.5x faster |
| Repository Size | 67MB | 96MB | 💾 1.4x smaller |
Tested on Linux with OpenSSL 3.5 LTS, multi-threaded operations enabled
- BLAKE3 content addressing - Fast, secure, collision-resistant hashing
- Git-like workflow - Familiar commands and concepts
- Multi-threaded operations - Parallel processing for speed
- Intelligent compression - Smart libdeflate compression with size optimization
- Directory support - Full recursive directory operations
- Large file support - Handles files up to 1GB with optimized memory management
- OpenMP parallelization - Multi-threaded file processing
- Fast compression - Level 6 libdeflate with smart detection
- Memory-efficient operations - Streaming file processing
- Optimized object storage - Git-style subdirectory structure
- Progress indicators - Real-time operation feedback
- Memory pool optimization - Efficient memory allocation for large files
- Smart compression detection - Avoids double-compressing already compressed files
- Consistent compression - Pure libdeflate compression with no fallbacks
- Directory removal -
-rflag for recursive directory operations - Thread configuration - Automatic CPU core detection and utilization
- Repository cleanup -
cleancommand to remove entire repository - Robust error handling - Detailed error messages and recovery
- Large file optimization - 1MB chunks and 1GB file size support
| Command | Description | Options |
|---|---|---|
avc init |
Initialize new repository | None |
avc add <path> |
Add files/directories to staging | None |
avc commit |
Commit staged changes | -m <msg>, --no-compression |
avc status |
Show repository status | None |
avc log |
Show commit history | None |
avc rm <path> |
Remove files/directories | -r, --cached |
avc reset <hash> |
Reset to commit | --hard, --clean |
avc clean |
Remove entire repository | None |
avc version |
Show version information | None |
-m <message>- Commit message--no-compression- Disable compression for speed-r- Recursive directory operations--cached- Only remove from staging area--hard- Reset working directory--clean- Wipe working directory before reset
- BLAKE3 hashing for fast, secure content addressing
- Git-style subdirectories (
.avc/objects/ab/cdef...) - Pure libdeflate compression with consistent compressed storage
- Streaming operations for memory efficiency
- Large file optimization with 1MB chunks and 1GB file support
- OpenMP parallelization for file processing
- Automatic thread detection and configuration
- Dynamic scheduling for optimal load balancing
- Thread-safe operations throughout the codebase
- Pure libdeflate compression for consistent performance
- No fallback compression - eliminates compatibility issues
- Large buffer support - 1MB compression buffers for big files
- Memory pool optimization - Efficient allocation for large operations
- Use multi-threaded operations - Automatic CPU core utilization
- Add files in batches rather than individually
- Use SSD storage for better I/O performance
- Ensure sufficient RAM for parallel operations
- Large files are optimized - 1MB chunks and 1GB file support
- Consistent compression - Pure libdeflate for reliability
- Focus on text files for best compression ratios
- Large file handling - Optimized for files up to 1GB
We welcome contributions! Please see our contributing guidelines:
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
# Debug build with sanitizers
mkdir build-debug && cd build-debug
cmake -DCMAKE_BUILD_TYPE=Debug ..
make
# Run tests
make testThis project is licensed under the GPL License - see the LICENSE file for details.
- Git - For inspiration and workflow concepts
- OpenSSL - For cryptographic functions
- libdeflate - For compression capabilities
- OpenMP - For parallel processing support
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: This README and inline code comments
AVC v0.1.5 "Arctic Fox" - Fast, efficient, and reliable version control for the modern developer.
Built with ❤️ by Atheria