An API-first BGP daemon in Rust for route servers, route reflectors, and network automation.
Manage peers, apply policy, and inject routes through gRPC or the rbgp CLI.
Inspect unicast route decisions from the live RIB, test policies before applying
them, and stream routing events to your own tools.
Documentation · Install · Releases · Website
Stability: inventoried IPv4/IPv6 unicast route-server and route-reflector surfaces have a narrow v1 compatibility contract, with baseline v0.69.0. The project remains alpha overall; unlisted surfaces, EVPN, and Linux dataplane features are outside that promise. Stability and compatibility explains the boundaries.
IPv4/IPv6 unicast, per-member policy, RPKI, and Add-Path. Inventoried surfaces are covered by the narrow v1 contract.
Evaluate · Deploy · Shadow pilot
IPv4/IPv6 unicast under the narrow v1 contract. VPN, labeled-unicast, RT-Constrain, and BGP-LS reflection have separate, scoped support; EVPN remains alpha.
BMP/MRT feeds, route injection, FlowSpec, and gRPC integration. Shipped capabilities have individual limits; support does not imply v1 stability.
Monitoring recipe · API reference · DDoS example
Linux FIB integration is opt-in. VPN reflection does not provide PE/VRF or MPLS forwarding, and rustbgpd does not provide a full multi-protocol routing suite. Check the current limitations for your role.
With Git and Docker Compose installed, start rustbgpd and an FRR peer that advertises sample IPv4 and IPv6 routes. The first run builds the daemon from source; subsequent runs reuse cached build layers.
git clone https://github.com/lance0/rustbgpd
cd rustbgpd/examples/docker-compose
docker compose up -d --buildThe demo supplies a public test-only bearer token to in-container rbgp
commands. Once the containers are running, check the session and open the TUI:
docker compose exec rustbgpd rbgp -s http://127.0.0.1:50051 summary
docker compose exec rustbgpd rbgp -s http://127.0.0.1:50051 topSelect the FRR peer, open its detail, then press r to explore its unicast
Best, Received, Advertised, and Rejected tables and explain export decisions.
Press q to exit. You can also explain a sample route directly:
docker compose exec rustbgpd rbgp -s http://127.0.0.1:50051 rib --prefix 192.168.1.0/24 --explainWhen finished, run docker compose down. The demo guide
covers more commands and resetting its persistent state.
Write policies in .rpol with named prefix/community sets, composition, and
unit tests in the policy file. Compile them offline, then dry-run a candidate
against an installed daemon's live RIB before applying it.
From the repository root, using the shipped route-server policy:
rbgp policy check examples/route-server/hygiene.rpol
rbgp policy test examples/route-server/hygiene.rpol --policy ixp-hygiene --direction import
rbgp rib --prefix 203.0.113.0/24 advertised 198.51.100.7 --explain
rbgp policy statsThe live commands use your installed daemon's local socket by default;
substitute your prefix and peer for the export example. Import-decision
explain requires [policy.explain] enabled = true; unicast best-path and
export-gate explain need no decision cache.
Policy language · Route explainability · Feature tour
The daemon supports Linux x86_64 and aarch64. Releases provide tarballs, Debian/RPM packages, and container images; consult the platform support contract and the installation guide for platform requirements, checksum verification, and image architecture availability.
- Install a release: follow the deployment guide for packages, tarballs, Docker, and systemd.
- Build from source: follow Contributing for the Rust toolchain and build prerequisites.
- Configure real peers: start with the host quickstart or a scenario recipe.
The default gRPC listener is a local Unix socket. For remote administration, use the documented mTLS and authorization setup.
Start with the documentation index, or go directly to your task:
| Task | Guide |
|---|---|
| Configure, operate, or upgrade | Configuration · Operations · Deployment |
| Automate or embed | gRPC API · gNMI · Rust libraries |
| Evaluate the evidence | Performance results · Operational proof · Interop and receipts |
| Understand or contribute | Architecture · Contributing · Roadmap |
| Check compatibility or get help | Stability · Support · Security reporting |
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.


