• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

corebreaker / arbordb / 21
88%
main: 98%

Build:
Build:
LAST BUILD BRANCH: finalization
DEFAULT BRANCH: main
Ran 12 Jul 2026 06:54AM UTC
Jobs 1
Files 103
Run time 3min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

12 Jul 2026 06:51AM UTC coverage: 87.368% (+0.6%) from 86.719%
21

Pull #2

circleci

corebreaker
Extend the write-back cache to permissions and to file edits, and add a direct typed-to-blob encoder

Rename the per-transaction DirBuffer to WriteBuffer and compile it into every build, including permissions, where a flushed directory is now sealed once at commit. A protected fresh bulk under one parent was O(N²) and re-signed the parent directory on every child link (2N Ed25519 signatures); it is now O(N) with the parent signed once — protected bulk drops from 119 to 24 µs/op at N=2000 (~4.9×) and is linear again. A freshly created directory's blob is buffered but its ACL is stamped eagerly, so a non-master writer's mid-transaction traversal check still sees it; resolve_enforced, Grab::entry_blob, Grab::verify, and the Context read helpers consult the buffer first, since a buffered a-node is the transaction's own trusted state (sealed only at the commit-time flush). External tampering is still caught, since a fresh transaction starts with an empty buffer.

Add a direct typed-to-blob encoder: AData::encode_node emits a value straight into the blob in one children-first pass (driving a doc-hidden NodeEncoder), so store<T> no longer decomposes the value into a BTreeMap-backed Value tree and then walks it a second time. The default keeps the old Value-based path (so every implementor is correct); the scalars, containers, and — in the derive — simple structs override it, with a flatten or store_with field falling back to the default. The output is byte-identical to the Value path (cross-checked). Non-permissions fresh bulk drops from 2.77 to 1.99 µs/op (−28%); the remaining gap to raw redb is the self-describing blob (field names plus offset tables), the deliberate trade that wins on reads.

Buffer edits of an existing file's value in the same write-back cache, so a burst of edits to one value in a transaction coalesces into a single re-encode and, under permissions, a single signature at the commit-time flush — the incremental cost falls to ~2.1 µs/edit... (continued)
Pull Request #2: Optimization

898 of 950 new or added lines in 33 files covered. (94.53%)

20 existing lines in 8 files now uncovered.

8445 of 9666 relevant lines covered (87.37%)

374911.34 hits per line

Uncovered Changes

Lines Coverage ∆ File
11
88.32
-10.81% crates/arbordb/src/data/value.rs
9
92.8
0.4% crates/arbordb/src/txn/read.rs
9
91.46
3.54% crates/arbordb/src/txn/write.rs
8
95.24
2.47% crates/arbordb/src/txn/context/ctx.rs
4
88.03
-0.0% crates/arbordb/src/txn/context/table.rs
4
95.24
crates/arbordb/src/txn/context/write_buffer.rs
3
98.32
-1.68% crates/arbordb/src/index/registry/repository.rs
2
88.89
0.0% crates/arbordb/src/engine/entry.rs
1
80.43
2.39% crates/arbordb/src/access/archived.rs
1
86.99
0.02% crates/arbordb/src/perm/store.rs

Coverage Regressions

Lines Coverage ∆ File
5
92.8
0.4% crates/arbordb/src/txn/read.rs
4
88.32
-10.81% crates/arbordb/src/data/value.rs
4
93.44
-0.9% crates/arbordb/src/value.rs
2
93.83
3.9% crates/arbordb/src/inode/functions.rs
2
88.03
-0.0% crates/arbordb/src/txn/context/table.rs
1
89.58
-1.8% crates/arbordb/src/engine/functions.rs
1
95.24
2.47% crates/arbordb/src/txn/context/ctx.rs
1
91.46
3.54% crates/arbordb/src/txn/write.rs
Jobs
ID Job ID Ran Files Coverage
1 21.1 12 Jul 2026 06:54AM UTC 103
87.37
CircleCI Job
Source Files on build 21
  • Tree
  • List 103
  • Changed 42
  • Source Changed 41
  • Coverage Changed 29
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • CircleCI Build #21
  • Pull Request #2
  • PR Base - main (#17)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc