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

prisma-risk / tsoracle / 26189583477
95%

Build:
DEFAULT BRANCH: main
Ran 20 May 2026 09:04PM UTC
Jobs 1
Files 23
Run time 1min
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

20 May 2026 08:58PM UTC coverage: 92.675% (+1.3%) from 91.37%
26189583477

push

github

web-flow
feat(openraft-toolkit): rocksdb log store, lifecycle helpers, codec (#12)

* feat(openraft-toolkit): add new crate with module skeleton

This crate will host reusable openraft glue: a binary wire codec, a
RaftTypeConfig declaration macro, a RocksDB-backed RaftLogStorage, and
lifecycle helpers for bootstrap, membership, and leader-watch. The
rocksdb backend sits behind the `rocksdb-log-store` feature so downstream
consumers that bring their own storage don't pay the native dependency
cost; the `test-fakes` feature exposes in-memory variants for cross-crate
conformance testing.

* feat(openraft-toolkit): add binary wire codec

* feat(openraft-toolkit): add declare_raft_types_ext macro

Wraps `openraft::RaftTypeConfig` so consumers declare only the slots
that actually vary (`Node`, `AppData`, `AppDataResponse`,
`SnapshotData`, and optionally `NodeId`/`Entry`/`AsyncRuntime`/
`Responder`). The macro emits a direct `impl RaftTypeConfig` rather
than wrapping `openraft::declare_raft_types!`, because the upstream
macro's `Responder<T>` slot is hard-coded to `ProgressResponder` and
its entry grammar can't express the `where T: OptionalSend + 'static`
bound — matching databend-meta's choice (`OneshotResponder<Self, T>`)
requires emitting the impl block directly. That also pins the other
inherited slots (`Term`, `LeaderId = leader_id_adv`,
`Vote = Vote<Self::LeaderId>`, `Batch = InlineBatch`,
`ErrorSource = BoxedErrorSource`) to the values placement-driver's
hand-written impl uses today, so the eventual swap is a substitution.

Includes a smoke test that exercises both the minimum-slot form and a
form with every optional override populated.

* feat(openraft-toolkit): add KeySpace trait with flat layout

* feat(openraft-toolkit): add group-prefixed key layout

* feat(openraft-toolkit): add rocksdb meta column-family helpers

* feat(openraft-toolkit): add RocksdbLogStore type with open constructor

* feat(openraft-toolkit): implement RaftLogReader and RaftLogStorag... (continued)

450 of 465 new or added lines in 5 files covered. (96.77%)

1784 of 1925 relevant lines covered (92.68%)

286071.56 hits per line

Uncovered Changes

Lines Coverage ∆ File
9
95.98
crates/openraft-toolkit/src/log_store/mod.rs
6
88.24
crates/openraft-toolkit/src/lifecycle/leader.rs
Jobs
ID Job ID Ran Files Coverage
1 26189583477.1 20 May 2026 09:04PM UTC 23
92.68
GitHub Action Run
Source Files on build 26189583477
  • Tree
  • List 23
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26189583477
  • 47b8b2ae on github
  • Prev Build on main (#26188876624)
  • Next Build on main (#26191195629)
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