Skip to main content
Documentation
Documentation

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.

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 log

Branching

# 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-grade

Remote 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-project

Implementation Status

The local Dits CLI is covered by 469 automated tests. The commands below work today on your machine:

initaddstatuscommitlogcheckoutbranchswitchdifftagmergeresetrestoreconfigstashrebasecherry-pickbisectreflogblameshowgrepworktreesparse-checkouthooksarchivedescribeshortlogmaintenancecompletionsvideo-initvideo-add-clipvideo-showvideo-listproxy-generateproxy-statusproxy-listproxy-deletesegmentassembleroundtripmountunmountinspectinspect-filerepo-statscache-statsfsckmeta-scanmeta-showmeta-listlockunlocklocksloginlogoutchange-passwordauditaudit-statsaudit-exportfreeze-initfreeze-statusfreezethawfreeze-policyencrypt-initencrypt-statusdep-checkdep-graphdep-listgcclean

These commands are roadmap— networked features that are not yet built. Today they print placeholders and transfer no data:

remotepushpullfetchclonesyncp2p

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: