Dits Documentation
Welcome to the Dits documentation. Dits is a local-first, content-addressed version control system, covered by 469 automated tests. Built for creative industries with Git-like workflows for massive binary assets - from video production to game development to 3D animation. Networked features such as remote sync and P2P are on the roadmap and not yet available.
remote, push, pull, fetch, clone, sync, and P2P — are on the roadmap: today they print placeholders and transfer no data. The same applies to the hosted REST API, official SDKs, Ditshub cloud, and managed deployment. Do not depend on those yet.Why Dits Exists
The Problem
- Git LFS is a bandaid, not a solution
- Large files get re-uploaded entirely for tiny changes
- No deduplication across versions or projects
- Manual versioning with "final_v27.mp4" files
- No proper branching/merging for creative assets
- Binary conflicts require manual resolution
- 1TB+ projects overwhelm traditional systems
- No testing for creative workflows
The Dits Solution
- Content-defined chunking deduplicates automatically
- Only changed chunks transfer across network (planned)
- Video-aware optimizations (keyframe alignment)
- Git-like interface familiar to developers
- Local-first; optional cloud storage on the roadmap
- Hybrid Git+Dits storage for optimal performance
- 469 automated tests across many file formats
- Git operations work on binary creative assets
- Local encryption and audit logging
- P2P networking and remote sync (roadmap)
Quick Reference
Basic Workflow
# Initialize a new repository
dits init
# Add files to staging
dits add video.mp4
dits add footage/
# Check status
dits status
# Commit changes
dits commit -m "Add raw footage"
# View history
dits logBranching
# Create a branch
dits branch feature/color-grade
# Switch to branch
dits switch feature/color-grade
# Merge branch
dits switch main
dits merge feature/color-gradeRemote Operations (roadmap)
Networked commands are not yet implemented — today they print placeholders and transfer no data. The example below is illustrative of the intended interface.
# (planned) Add a remote
dits remote add origin /path/to/remote
# Push changes
dits push origin main
# Pull changes
dits pull origin main
# Clone a repository
dits clone /path/to/repo my-projectImplementation Status
The local Dits CLI is covered by 469 automated tests. The commands below work today on your machine:
These commands are roadmap— networked features that are not yet built. Today they print placeholders and transfer no data:
Complete VCS (60+ Commands)
Full Git-compatible workflow + advanced operations: branching, merging, rebasing, stashing, worktrees, hooks, maintenance
Comprehensive Media Support
80+ file formats tested: MP4/MOV video, 3D models (OBJ/FBX/glTF), game assets (Unity/Unreal), images, audio, custom formats
Local Security & Storage
Encryption, audit logging, VFS mounting, and cross-platform support work today. Redis caching and P2P networking are on the roadmap.
Testing Infrastructure
469 Automated Tests
- Git-inspired shell script framework
- Creative asset format validation
- Git operations on binary files
- Cross-platform compatibility
- 1TB workload simulation
Quality Assurance
- Chainlint for test script validation
- Performance regression testing
- Memory leak detection
- Network failure simulation
- Corruption recovery testing
Key Features
Core Technology
- Content-Defined Chunking: FastCDC streaming algorithm with 90% memory reduction, unlimited file sizes, and video-aware optimizations
- Hybrid Git+Dits Storage: Optimal performance for text files (Git) and binary assets (Dits)
- BLAKE3 Cryptographic Hashing: Fast, parallelizable hashing for content addressing
- Redis Caching Layer (roadmap): Distributed caching for massive repository performance
- QUIC Transport (roadmap): High-performance UDP-based networking with resumable transfers
Creative Workflow Support
- 80+ File Formats: Comprehensive support for 3D models, game assets, video, audio, images
- Git Operations on Binaries: Diff, merge, blame, reset work on creative assets
- Virtual Filesystem: FUSE/Dokany mounting for on-demand access
- Distributed Locking: Redlock algorithm prevents binary file conflicts
- P2P Networking (roadmap): Decentralized collaboration and asset sharing
- Enterprise Security: AES-256-GCM encryption, audit logging, RBAC
Testing & Quality Assurance
- 469 Automated Tests: Git-inspired shell script framework covering all features and file formats
- Cross-Platform Testing: Windows, macOS, Linux filesystem and path compatibility
- Performance Regression: Benchmarks and scaling validation for enterprise workloads
- Recovery Testing: Corruption detection, automatic repair, and data integrity validation
- Stress Testing: 1TB+ workload simulation and extreme concurrency scenarios
Open Source & Community
Dits is proudly open source and welcomes contributions from the community. Whether you're a developer, creative professional, or just curious about version control for large files, there are many ways to get involved:
- Contribute Code: GitHub Repository - Rust implementation with comprehensive documentation
- Report Issues: GitHub Issues - Bug reports, feature requests, and technical discussions
- Join Discussions: GitHub Discussions - Community support, ideas, and general conversation
- Documentation: Contributing Guide - Help improve documentation and tutorials
Getting Help
Need help getting started or troubleshooting? Here are your resources:
- Check the CLI Reference for command details
- Read the Core Concepts to understand how Dits works
- Browse the Troubleshooting Guide for common issues
- Join GitHub Discussions for community support
- Report bugs on GitHub Issues