Rust + BGP, what's not to like?
294
This Docker image provides a high-performance and safe BGP implementation called RustyBGP. The project is an experiment to implement the aged and rusty BGP protocol in a modern language, Rust. RustyBGP is designed to exploit multicore processors, making it much faster than other open-source implementations. You can see the difference w.r.t FRR (right part of image)
High performance: RustyBGP is designed to exploit multicore processors (see left part of image), resulting in faster performance compared to other open-source implementations. gRPC APIs: RustyBGP supports the same gRPC APIs as GoBGP, allowing your existing code to manage GoBGP via the APIs to work with RustyBGP. CLI tool: If you need a CLI, the GoBGP CLI tool allows you to manage RustyBGP. Configuration file format: RustyBGP supports the same configuration file format as GoBGP (only toml and yaml for now). Basic BGP features: RustyBGP supports basic BGP features such as eBGP and iBGP, active/passive connection, RPKI, BMP (BGP monitoring protocol), MRT, etc. Getting Started You can easily build RustyBGP on any system that has Docker running. You don't need a Rust development environment. The Docker image exposes the rustybgpd binary which can be run to start the BGP daemon.
You can manage the daemon on a different terminal with GoBGP's CLI command. If you just want to check out the performance, start the daemon with --any-peers option. The daemon accepts any peers without configuration.
This image has been built from source for working in ARM devices such as the RaspberryPi3 and RaspberryPi4. Holding a global routing table takes less than 1GB of memory, hence a 32bit version is sufficient. Enjoy!
For code or documentation contributions to RustyBGP, you can send a pull request. There is no CLA, board members, governance, or other mess.
Content type
Image
Digest
sha256:9b94a9ddd…
Size
5.9 MB
Last updated
about 3 years ago
docker pull xchikux/rustybgp