nwep
Rust bindings for the NWEP (WEB/1) protocol library — a decentralized, authenticated transport built on QUIC with Ed25519 identity, Merkle-log provenance, and BLS threshold signatures.
Features
- Mutual-authentication QUIC connections (client and server)
- Ed25519 keypair generation, signing, and verification
- Merkle log for append-only identity event records
- BLS threshold signatures and anchor quorums
- Identity cache with LRU eviction and TTL expiry
- Log server pool with health tracking and load balancing
- Trust store with equivocation detection
Quick start
use ;
init.unwrap;
let keypair = generate.unwrap;
let client = new
.connect
.unwrap;
let resp = client.get.unwrap;
println!;
client.close;
See examples/server.rs and examples/client.rs
for runnable examples.
Build requirements
The native library is downloaded automatically at build time by setup.sh. You need:
curl— to fetch the release archive from GitHubtar(Linux/macOS) orunzip(Windows) — to extract it- Internet access during the first build (subsequent builds reuse the cached library)
On Windows, run inside Git Bash or WSL. PowerShell is not supported.
To pre-populate the library without a network connection, download the appropriate release
archive from github.com/usenwep/nwep/releases,
extract it to third_party/nwep/, and create a symlink (or directory junction on Windows)
named current pointing to the extracted directory.
Supported platforms
| OS | Architecture |
|---|---|
| Linux | x86_64, aarch64 |
| macOS | x86_64, aarch64 (Apple Silicon) |
| Windows | x86_64 |
Feature flags
| Flag | Description |
|---|---|
regenerate-bindings |
Re-run bindgen from nwep.h to regenerate src/bindings.rs. Requires clang/libclang. |
License
MIT — see LICENSE.