stowe-0.1.1 is not a library.
stowe
Git for files, any remote. Version-control large/binary files (music, photos, video, datasets) where git chokes — content-addressed, deduped, with a dumb pluggable remote. No branches, no content diffs.
Features
- Dedup — every file is named by its blake3 hash, so identical/unchanged content is stored once.
- Fast rescans — a file is re-read only when its size or mtime changes.
- Move tracking — renames are matched by content hash; audio also carries a fingerprint (hash of the decoded PCM, via Symphonia), so a song that's renamed and re-tagged still reads as a move, not a delete + add.
- git-style status — staged / unstaged / untracked, with
deleted/modified/renamed/new.
Remotes
The backend is picked from the URL:
local:<path>— folder, mounted drive, or NAS. Anything you can mount is a remote, so Google Drive / Dropbox / FTP work today by mounting them (rclone mount gdrive: ~/gdrive) and pointinglocal:at the mount.s3://<bucket>[/<root>]— any S3-compatible store (AWS, Backblaze B2, MinIO). Credentials from theAWS_*env vars; setAWS_ENDPOINT_URLfor B2/MinIO.
A populated remote is a bare repo — refs/main, commits/<hash>.json,
objects/<ab>/<rest> — so any machine can read it and rebuild the library.
Native gdrive: / rclone: / ftp:// are planned, behind the same interface.
Status
Early: linear history (one main), last-write-wins push, whole-file objects (no
chunking). stowe restore/checkout (recover a committed file) and stowe gc
(prune unreferenced history) are planned.
License
AGPL-3.0-only.