ebkalderon / merkle-tree-nix-store-thing

Basic implementation of a Nix-like store abstraction over a Merkle tree
Apache License 2.0
6 stars 0 forks source link

Content addressable Nix-like store backed by a Merkle tree (PoC)

This is not a real build system nor package manager, only a crappy proof of concept. It does not integrate hash rewriting (yet), making it an extensional store design and not an intensional design.

Features

Future work

Usage

$ mkdir -p store
$ cargo run
<snip>
$ tree ./store
store
├── objects
│   ├── 48
│   │   └── 642aa3b535c3d2b8223b4ae8b0f9a62f1d5f1c769d136cb0da301264649603.tree
│   ├── 9f
│   │   └── cb43efcfdcc0cffb5bb2c2b386c0e75c1d9e01321b0f62f2bf907ec6557f60.blob
│   ├── ab
│   │   └── 4db9898d125eb5f4b396fefd45b32fdb5a663e16855bcff29b9e18dc0f6f2f.blob
│   ├── ac
│   │   └── 0d0d568df5b048a83b2e1a6f81120266695d0f2d5843d3ed69bf4e5379146d.pkg
│   ├── c1
│   │   └── 7cb4d06cb51d69238b70e45766e9b265c7d70cb5c23e510ce2a940610c3e64.pkg
│   ├── ca
│   │   └── 290b71a756a43da3eaedcab8afbbe594af6f25dd696ce877c5ceb3fe24c892.blob
│   └── dc
│       └── 0675565eada2f4d0df31f5a7d8c0c06c256decd6404ba3eee560686374332f.tree
└── packages
    ├── bar-c17cb4d06cb51d69238b70e45766e9b265c7d70cb5c23e510ce2a940610c3e64
    │   └── main.rs
    └── foo-ac0d0d568df5b048a83b2e1a6f81120266695d0f2d5843d3ed69bf4e5379146d
        ├── bar.sh
        ├── baz.rs -> ./src/main.rs
        ├── foo.txt
        └── src
            └── main.rs

12 directories, 12 files