Version control for video and large binary files - like Git, but optimized for large binary files
npm install @byronwade/ditsVersion control for video and large binary files - like Git, but optimized for large binary files.


``bash`
npm install -g @byronwade/dits
Or using other package managers:
`bashUsing bun
bun install -g @byronwade/dits
After installation, verify it works:
`bash
dits --version
`What is Dits?
Dits is a version control system designed for large binary files like video, 3D assets, and game files. It brings Git-like workflows to creative professionals who work with massive media files.
$3
- 🎬 Video-Aware: Optimized for video files with MP4 atom preservation
- 🚀 Fast: Content-defined chunking (FastCDC) for efficient deduplication
- 💾 Storage Efficient: Automatic deduplication saves massive disk space
- 🔒 Secure: BLAKE3 hashing and optional encryption
- 🌐 P2P Support: Direct peer-to-peer sharing without cloud servers
- 📦 Git-Like: Familiar commands (
init, add, commit, status, log)Quick Start
`bash
Initialize a new repository
dits initAdd your video files
dits add footage/video.mp4
dits add project.prprojCommit your changes
dits commit -m "Initial commit: Add raw footage and project"Check status
dits statusView history
dits log
`Example Workflow
`bash
Create a new project
mkdir my-video-project
cd my-video-project
dits initAdd files
dits add raw-footage/
dits add edits/
dits add project.prprojCommit
dits commit -m "Add all project files"Create a branch for experimentation
dits branch experimental-edit
dits switch experimental-editMake changes, then commit
dits add new-edit.mp4
dits commit -m "Try new editing approach"Switch back and merge
dits switch main
dits merge experimental-edit
`Supported Platforms
| Platform | Architecture | Status |
|----------|--------------|--------|
| macOS | Apple Silicon (M1/M2/M3) | ✅ Supported |
| macOS | Intel (x64) | ✅ Supported |
| Linux | x64 (glibc) | ✅ Supported |
| Linux | ARM64 (glibc) | ✅ Supported |
| Linux | x64 (musl/Alpine) | ✅ Supported |
| Linux | ARM64 (musl/Alpine) | ✅ Supported |
| Windows | x64 | ✅ Supported |
| Windows | ARM64 | ✅ Supported |
Common Commands
`bash
Repository management
dits init # Initialize new repository
dits status # Show working tree status
dits add # Stage files
dits commit -m "message" # Commit changes
dits log # View commit historyBranching
dits branch # List branches
dits branch # Create branch
dits switch # Switch branch
dits merge # Merge branchRemote operations
dits remote add # Add remote
dits push # Push to remote
dits pull # Pull from remote
dits clone # Clone repositoryAdvanced features
dits proxy-generate # Generate video proxies
dits p2p share # Share via P2P
dits encrypt-init # Enable encryption
`Documentation
- Full Documentation: https://dits.byronwade.com/docs
- GitHub Repository: https://github.com/byronwade/dits
- Issue Tracker: https://github.com/byronwade/dits/issues
Alternative Installation Methods
$3
`bash
curl -fsSL https://raw.githubusercontent.com/byronwade/dits/main/install.sh | sh
`$3
`bash
brew install byronwade/tap/dits
`$3
`bash
cargo install dits
`Or build from repository:
`bash
git clone https://github.com/byronwade/dits.git
cd dits
cargo build --release
``- Node.js 16.0.0 or higher (for npm package)
- Rust 1.75+ (for building from source)
- 8GB RAM minimum (16GB recommended)
- 50GB free disk space for cache
Licensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contributions are welcome! Please see CONTRIBUTING.md for details.
- 📖 Documentation
- 💬 Discussions
- 🐛 Report Issues