Not a black box
From FUSE to VFS, from metadata to Chunk / Block / Slice, from object IO to compaction and GC — BrewFS separates filesystem semantics, metadata transactions, object-block storage, and background maintenance into clear layers that can be inspected, benchmarked, debugged, and extended.
Overall architecture
Namespace · Inode · Slice · Transaction
Cache · Compaction · GC
Read & write pipelines
BrewFS exposes the IO path as a clear Rust pipeline — no hidden magic between a file write and an object block.
Write Path
Read Path
Six architecture layers
CLI / Daemon
Starts BrewFS, loads configuration, mounts the filesystem, and exposes operational commands.
FUSE
Receives filesystem operations from the kernel and maps them into BrewFS VFS operations.
VFS
Handles path lookup, inode management, file handles, rename, truncate, read, and write.
Metadata
Stores namespace, directory entries, inode attributes, file size, chunk metadata, slice descriptors, and transactional state.
Chunk Engine
Manages Chunk / Block / Slice layout, read/write mapping, sparse holes, compaction, and GC.
Object Backend
Stores file data as object blocks on LocalFS or S3-compatible storage.
Keeping the object layout clean
BrewFS writes data in Slice form. Overwrites, truncates, and file updates may leave older slices and object blocks behind. Compaction reduces slice fragmentation, while GC removes object data that is no longer referenced.
Designed to be observed
Statistics, tracing, logs, profiling, benchmark tools, and control-plane commands help developers understand filesystem behavior under real workloads.