BrewFSBrewFS0.1
Test MethodAgent WorkloadsBenchmarksCompareArchitectureRust NativeUse CasesDocsBlogRoadmap中文
GitHubGet Started
Verification Method

POSIX correctness,
measured performance.

BrewFS treats filesystem behavior and performance as separate release gates. This page records the current reproducible methods and published validation coverage; results apply to the documented configuration, not every deployment.

Open test matrixView benchmarks
708/708
configured xfstests cases passed on every metadata backend
246 / 9,134
pjdfstest files / assertions passed on Redis and TiKV
1,166
passing Rust tests in the workspace gate
4 suites
xfstests, pjdfstest, LTP filesystem, and stress-ng

POSIX correctness

Test the filesystem contract, not only happy paths.

The PR completes metadata semantics across SQLite, PostgreSQL, Redis, etcd, and TiKV. Compose runners test FUSE behavior against RustFS-backed object storage and retain artifacts for every run.

PATHS

Namespace and metadata

Create, unlink, rename, hard links, timestamps, xattrs, special inodes, and setgid inheritance are checked through full POSIX suites.

LOCKS

Concurrency semantics

Byte-range locks, lookup/stat paths, close-to-open behavior, and writeback-sensitive paths are exercised across transactional metadata backends.

BACKENDS

Cross-backend evidence

Configured xfstests and LTP profiles run with SQLite, Redis, etcd, and TiKV, each paired with RustFS object storage.

Current correctness coverage

SuiteWhat it coversRecorded result
xfstestsFUSE, metadata, locking, writeback and object-store behavior708 / 708 configured cases on SQLite, Redis, etcd and TiKV
pjdfstestPOSIX paths, permissions, links, special nodes, rename, unlink and timestamps246 files / 9,134 assertions on Redis and TiKV
LTP filesystemLinux filesystem scenarios and record-lock coveragePassed on all four backends; buffered iogen01 remains documented skip
stress-ng smokeShort metadata and small-write stressPassed with no residual files
Run the POSIX verification suites
cargo test --workspace --lib --bins -- --test-threads=1
bash docker/compose-xfstests/run_redis_pjdfstest.sh
bash docker/compose-xfstests/run_redis_xfstests.sh
bash docker/compose-xfstests/run_redis_ltp.sh
bash docker/compose-xfstests/run_redis_stress_ng.sh --profile smoke

Known, explicit limits

  • generic/075 stays excluded: buffered FUSE mmap after truncate/extend can expose stale page-cache bytes. Direct I/O cannot run that mmap shape.
  • LTP iogen01 stays skipped in the normal buffered profile because a split-write/page-cache coherency race remains; it is kept as a diagnostic, not hidden.
  • open_by_handle_at, shared mount propagation, selected O_DIRECT sparse-hole cases, and long fsstress soaks remain explicitly classified in the test matrix.

Performance method

Profiles are part of the result.

The compared Redis + RustFS snapshot uses the same host, 4 MiB fio blocks, buffered fio, compression disabled, and matching writeback-throughput profiles. Writes are reported both as foreground acceptance and after the writeback queue is fully drained.

MetadataRedis
Object storageRustFS, S3-compatible
fio4 MiB blocks; io_uring; iodepth=1
ProfileMatching writeback-throughput profiles; BrewFS read-only direct I/O disclosed

Published profile snapshot: BrewFS / JuiceFS

WorkloadBrewFSJuiceFSRatio
Matched rows led15 of 24Baseline10/14 data · 5/10 meta
Mixed I/O (fully drained)218.60 MiB/s113.86 MiB/s1.92x
Foreground mixed I/O495.54 MiB/s328.76 MiB/s1.51x
Random read1,726.10 MiB/s1,256.80 MiB/s1.37x
Readdir28,634.94 ops/s16,020.25 ops/s1.79x
Reproduce the performance profiles
PERF_LOG_TO_CONSOLE=false PERF_FIO_SIZE=512m PERF_FIO_RUNTIME=20 \
bash docker/compose-xfstests/run_redis_perf.sh --s3 --writeback-throughput-profile

JUICEFS_META_BACKEND=redis PERF_LOG_TO_CONSOLE=false \
PERF_FIO_SIZE=512m PERF_FIO_RUNTIME=20 \
bash docker/compose-xfstests/run_juicefs_perf.sh --writeback-throughput-profile

Rules for a credible performance claim

  • Run the target workload at least three times and report the median; keep non-target fio and metadata regressions within 5%.
  • Do not attribute a warm-cache result to Rust alone. Cache warmth, FUSE profile, metadata round trips, and dirty-overlay behavior are measured variables.
  • Mark commit-before-upload, direct-I/O read handles, or write-open caching as opt-in profiles, not default behavior.
  • Re-run xfstests, pjdfstest, LTP filesystem, and stress-ng whenever a hot-path optimization changes filesystem behavior.
BrewFSBrewFSGitHub

Rust-native filesystem for multi-agent collaborative read/write workloads.

Product
What is BrewFSArchitectureRust NativeUse Cases
Agents
Agent WorkloadsShared WorkspaceRandRW Benchmark
Benchmarks
OverviewRandRWCompare JuiceFS
Community
GitHubRoadmapCommunityDocsBlog

© 2026 BrewFS · Apache-2.0 · Built in Rust 🦀

BrewFS is an early, fast-evolving open-source project. Performance claims refer to specific agent-style RandRW benchmarks; production readiness should be validated per workload.