Expand description
Some big dumb backup system.
See the backup
module for an overview and a crappy block diagram.
Modules§
- backend
- Places where we can make a backup repository - the local filesystem, (eventually) cloud hosts, etc.
- backup
- Common backup machinery exposed as channel-chomping threads
- blob
- Defines
Blob
, our fundamental unit of backup. - chunk
- Cut files into content-based chunks.
- config
- counters
- Performance counters: Count how many times we do various important operations.
- diff
- Diffs two trees and runs a set of callbacks for each difference.
- file_
util - Utilities for reading files into buffers and checking magic bytes.
- filter
- fs_tree
- Walk filesystem trees and indicate if files have changed.
- hashing
- Tools for hashing everything we care about into a unique
ObjectId
- index
- Build, read, and write indexes of packs’ contents.
- ls
- Print trees
- pack
- Build, read, and write compressed packs of blobs, suitable for storing in a backend
- prettify
- Change the entire program’s serialization scheme with this one weird trick!
- progress
- rcu
- A simple SPMC RCU doodad.
- read
- Tools to traverse a repository, reading blobs
- repack
- Shared utilities to repack blobs,
either loose ones in
backpak prune
or to another repo inbackpak copy
- snapshot
- Build, read and write snapshots of the filesystem to create our backups.
- tree
- Uniquely ID and store directories and their metadata
- ui
- upload
- uploads files (packs, indexes, snapshots) to a backend