A high-performance, safe BGP implementation in Rust designed to exploit multicore processors for superior routing performance.
RustyBGP is a Border Gateway Protocol (BGP) implementation written in the Rust programming language, designed to provide high-performance and safe routing for network infrastructure. It solves the problem of aged BGP implementations by leveraging modern language features and multicore processors to achieve significantly faster routing table processing. The project maintains compatibility with GoBGP's APIs and tools, allowing for easy adoption in existing environments.
Network engineers, telecommunications professionals, and developers working on high-scale routing infrastructure who need a performant, safe BGP implementation. It's also suitable for those already using GoBGP looking for a Rust-based alternative with better multicore utilization.
Developers choose RustyBGP for its superior performance over other open-source BGP implementations, thanks to its multicore design and Rust's safety guarantees. Its seamless compatibility with GoBGP's ecosystem reduces migration overhead, while the modern codebase offers long-term maintainability and scalability.
BGP implemented in the Rust Programming Language
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Leverages all CPU cores for faster routing table processing, as shown in benchmarks where it outperforms FRR by utilizing more cores efficiently.
Supports identical gRPC APIs and configuration formats (TOML/YAML), allowing seamless migration and reuse of existing GoBGP tools and code.
Written in Rust, providing memory safety and reducing vulnerabilities common in older C-based implementations for long-term reliability.
Includes Docker-based build instructions and an `--any-peers` option for quick deployment and performance testing without complex setup.
Only supports very basic BGP features, lacking advanced protocols, full add-path support, and complex policy routing found in mature daemons.
Described as an experiment, it may have stability issues, breaking changes, and limited long-term support guarantees for production use.
Requires familiarity with Rust for debugging or contributions, which can be a barrier for network engineers accustomed to C or Go ecosystems.