limni-0.2.59 is not a library.
limni — LimniFS CLI
One format, one CLI. limni is the command-line interface for
LimniFS — Layered, Immutable, Merkle-rooted, Network Image filesystem.
Installation
cargo build --release
For FUSE mount support (requires macFUSE on macOS or libfuse on Linux):
cargo build --release --features fuse
Commands
Create
| Command |
Description |
limni limn <dir> <image.lim> |
Build a .lim image from a directory tree |
limni compact <source.lim> <output.lim> |
Eliminate slab garbage by re-packing |
Inspect
| Command |
Description |
limni verify <image.lim> |
Validate manifest, compute ManifestRoot |
limni verify --json <image.lim> |
Machine-readable JSON output |
limni inspect <image.lim> |
Comprehensive overview (metadata, slabs, ratios) |
limni tree <image.lim> [path] |
Recursive directory tree listing |
limni ls <image.lim> [path] |
List directory contents |
limni stat <image.lim> <path> |
Print inode metadata (mode, sizes, content handle) |
limni cat <image.lim> <path> |
Write file contents to stdout |
limni history <image.lim> |
Print the history section (build/delta/flatten ops) |
Analyse
| Command |
Description |
limni diff <parent.lim> <child.lim> |
Compute tree operations (Add/Remove/Replace) |
limni gc <image.lim> |
Find unreferenced drops (slab garbage analysis) |
limni dedup <image.lim> |
Analyse drop dedup across files |
limni slab <slab.bin> |
Inspect a slab file (drop records, codecs, ratios) |
limni check <image.lim> |
Deep integrity check (BLAKE3 hash verification) |
limni benchmark |
Quick write/read/extract benchmark on synthetic tree |
Mount
| Command |
Description |
limni mount <image.lim> <mountpoint> |
Mount as read-only FUSE filesystem (requires fuse feature) |
Examples
Build and verify
$ limni limn ./mydir output.lim
output.lim: wrote 417 bytes, b3:kouzvnjlelxh4rp4zsgvma6za7tkd5cpaffiozzv6mvxnmw23o4a
inodes: 4 files: 2 dirs: 2 drops: 0
$ limni verify output.lim
output.lim: valid LimniFS manifest
...
merkle root: b3:kouzvnjlelxh4rp4zsgvma6za7tkd5cpaffiozzv6mvxnmw23o4a
Explore
$ limni tree output.lim
├── a.txt
└── sub dir
└── b.txt
$ limni cat output.lim /a.txt
hello world
$ limni inspect output.lim
image: output.lim
format versions: drop_store=1 metadata=1 manifest=1
metadata: inlined
metadata blob: 4 inodes, 2 dir nodes, root inode = 1
files: 2, directories: 2
slab index: 0 entries
Diff two images
$ limni diff parent.lim child.lim
ops: 1
A b.txt inode=3
GC analysis
$ limni gc image.lim
gc analysis: image.lim
total drops in slab(s): 2
referenced by manifest: 2
garbage (unreferenced): 0 drops, 0 bytes
status: clean (no garbage)
Exit codes
| Code |
Meaning |
| 0 |
success |
| 1 |
read error (I/O, format) |
| 2 |
usage error |