Prikk is a standalone distributed version control system built around block-oriented patch theory.
Prikk uses a native .prikk/ repository format. It is not a Git wrapper and does not use .git/ as a
storage backend. The project aims to combine patch-based semantic precision with practical performance
by sealing history into immutable blocks and keeping expensive patch reasoning bounded to active work.
Prikk is an early implementation. It suits architecture review, experimentation, and contribution. Do not use Prikk as the sole store for important project history yet — the repository format and command surface are still evolving, and future releases may require migration. See the release, versioning, and compatibility reference for the pre-1.0 boundary.
Project Goals
Prikk is designed to be:
- easy to use for ordinary local development workflows;
- safe and secure by default, with role-bound signatures and fail-closed validation;
- resilient against corruption, interrupted operations, and lost mutable pointers;
- flexible enough for local, peer, and future hosted workflows;
- fast for long-lived repositories by separating active patch reasoning from sealed block history;
- explainable when patch reasoning cannot prove a safe result.
Core Ideas
- Patch: an atomic logical change with ordered operations and an AUTHOR signature.
- Block: an immutable sealed collection of patches; blocks are the scalability boundary.
- Ref state: signed reference state; ref files are pointers, not the root of trust.
- Ref update: append-only publication evidence for a ref transition.
- WAL: active signed patch envelopes before sealing.
- Repository layout:
.prikk/stores native Prikk objects, refs, active WAL state, and local trust data; see the repository layout reference. - Concurrency and locking: local lock files guard active-session and ref publication writes; see the concurrency and locking reference.
- Path safety: repository paths use a conservative validated subset; see the path and worktree safety reference.
- Attestation: future audit/policy evidence targeting blocks without defining block identity.
Good Fit
Prikk may be a good match if you are:
- evaluating next-generation VCS architecture;
- interested in patch theory, commutation, conflict evidence, or signed history;
- building tools that need verifiable local history and conservative recovery behavior;
- contributing to a Rust implementation of a correctness-sensitive CLI and storage system;
- reviewing security, durability, and publication-trust boundaries.
Install
|
Downloads the prebuilt archive for your platform, verifies its checksum, and installs to
~/.local/bin. Also available as cargo binstall prikk, cargo install prikk, or a direct download
from the release page.
Repository mutation runs on Linux, macOS, and Windows; read-only commands build and run on every platform Rust targets. A checksum proves integrity of transport, not authority of origin — no release passes the signer-authority audit yet.
The install guide covers pinning a version, verifying checksums by hand, building from source, uninstalling, and the per-platform detail; the platform support reference has the exact command-by-command matrix.
Quick Start
The commands below, with explanation and the two refusals you will actually hit along the way, are the Tutorial — this block is a copy-pasteable summary of it, not a second, independent walkthrough; its authority for what each step means and why is the tutorial page.
&&
The sample seed and key values above are public examples and must never be used for real signing — see Security and Signing Setup for the current setup boundary.
Ran into a refusal, or wondering why a step works the way it does? The
Troubleshooting and FAQ pages cover
exactly this walkthrough — including why ref names are fully qualified (heads/topic, not topic),
why commit and seal each need their own key, and how commits queue across multiple commit calls
before one seal.
Useful Commands
Every command accepts --help for its own usage:
prikk <command> --help
The full inventory, with exit-code semantics, is the command surface reference.
Current State
What works today, and the limits worth knowing before relying on it, are in the current state reference.
Crates
prikk is the command-line tool. The others are the libraries it is built from, published so the
CLI can be built from crates.io — their APIs may change without notice before 1.0.
| Crate | Purpose | Version | Docs | Dependencies |
|---|---|---|---|---|
prikk |
the command-line tool | |||
prikk-store |
repository storage engine — layout, object storage, WAL durability, verification, patch replay | |||
prikk-object |
object identity, canonical encoding, and payload types | |||
prikk-replay |
replay and lifecycle semantics | |||
prikk-crypto |
Ed25519 signing and verification | |||
prikk-hash |
SHA-256 primitives | |||
prikk-error |
shared error taxonomy | |||
prikk-ffi |
Windows filesystem-identity FFI bindings |
Development Gates
Every change this project accepts passes the full gate set in
rfcs/EXECUTION-ORDER.md §6 rule 9, which that document owns. The three
commands worth running constantly, the rest of the set, and how work is reviewed here are in
CONTRIBUTING.md.
More Detail
The roadmap, RFCs, and mdBook docs are the best entry points for design details: