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

databendlabs / openraft / 20552654284
88%

Build:
DEFAULT BRANCH: main
Ran 28 Dec 2025 10:46AM UTC
Jobs 1
Files 255
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

28 Dec 2025 10:33AM UTC coverage: 87.891% (-0.6%) from 88.463%
20552654284

push

github

drmingdrmer
change: move v1 network API to `openraft-network-v1` crate

`RaftNetwork`, the first version of the network trait, has been moved to a
separate `openraft-network-v1` crate. The core `openraft` crate now only
provides `RaftNetworkV2`. If you still want to use the chunk-based snapshot
transport via `RaftNetwork`, add the new crate and use the provided adapters.

Changes:
- Create `openraft-network-v1` crate with `Adapter`, `ChunkedRaft`
- Add `Adapter<C, N>` to convert `RaftNetwork` implementations to `RaftNetworkV2`
- Add `ChunkedRaft<C>` wrapper providing `install_snapshot()` for receiving chunks
- Remove `snapshot_transport.rs` and `v2/adapt_v1.rs` from openraft
- Add deprecated `RaftNetwork` stub in openraft with migration guidance
- Remove unused `tokio` dependency from openraft
- Update docs and examples to use `openraft-network-v1`

Upgrade tip:

If you are already using `RaftNetworkV2`, no changes are needed.

If you are using `RaftNetwork` (v1), follow these steps:

Add `openraft-network-v1` to your Cargo.toml:
```toml
[dependencies]
openraft = "0.10"
openraft-network-v1 = "0.10"
```

Update imports:
```rust
// Before
use openraft::RaftNetwork;

// After
use openraft_network_v1::RaftNetwork;
```

Client-side (Leader sending snapshots):
Wrap your `RaftNetwork` impl with `Adapter` to get `RaftNetworkV2`:
```rust
use openraft_network_v1::Adapter;

// Your existing RaftNetwork implementation
impl RaftNetwork<MyConfig> for MyNetwork { ... }

// In RaftNetworkFactory, wrap it with Adapter:
impl RaftNetworkFactory<MyConfig> for MyFactory {
    type Network = Adapter<MyConfig, MyNetwork>;

    async fn new_client(&mut self, ...) -> Self::Network {
        Adapter::new(MyNetwork::new(...))
    }
}
```

Server-side (Follower receiving snapshots):
Wrap your `Raft` instance with `ChunkedRaft` to handle `InstallSnapshotRequest`:
```rust
use openraft_network_v1::ChunkedRaft;

let raft = openraft::Raft::new(...).await?;
let chunked_raft = ChunkedRaft::new(raf... (continued)

73 of 211 new or added lines in 4 files covered. (34.6%)

28 existing lines in 6 files now uncovered.

15577 of 17723 relevant lines covered (87.89%)

158743.55 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
13
69.05
network-v1/src/streaming.rs
22
66.67
network-v1/src/chunked_raft.rs
37
0.0
network-v1/src/adapt_v1_to_v2.rs
66
0.0
network-v1/src/sender.rs

Uncovered Existing Lines

Lines Coverage ∆ File
2
96.86
-0.9% openraft/src/replication/mod.rs
3
50.0
-50.0% openraft/src/storage/snapshot.rs
5
49.47
-5.26% openraft/src/error/storage_error.rs
5
27.27
-45.45% openraft/src/raft/message/install_snapshot.rs
6
40.0
-40.0% openraft/src/network/rpc_option.rs
7
36.5
-5.11% openraft/src/error/mod.rs
Jobs
ID Job ID Ran Files Coverage
1 20552654284.1 28 Dec 2025 10:46AM UTC 255
87.89
GitHub Action Run
Source Files on build 20552654284
  • Tree
  • List 255
  • Changed 13
  • Source Changed 9
  • Coverage Changed 9
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #20552654284
  • a03c71d2 on github
  • Prev Build on main (#20552226553)
  • Next Build on main (#20555079727)
  • Delete
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