pabgp

A pretty average BGP implementation

1 unstable release

0.2.0 Sep 10, 2024

#875 in Network programming

Download history 99/week @ 2024-09-05 46/week @ 2024-09-12 16/week @ 2024-09-19 9/week @ 2024-09-26 4/week @ 2024-10-03

101 downloads per month
Used in delegation-feed

AGPL-3.0-or-later

100KB
2.5K SLoC

paBGP

A pretty average BGP implementation in Rust.

Supported Features

It implements most of the modern BGP data structures and messages, as well as utilities to easily create them with builder patterns, encode them to bytes, and decode them from bytes.

Next-to-full support for:

  • Base BGP-4 (RFC4271)
  • BGP Capabilities (RFC5492)
  • Multiprotocol Extensions for BGP-4 (cap 1) (RFC4760)
  • IPv4 over IPv6 next-hop (cap 5) (RFC8950)
  • Four-octet AS numbers (cap 65) (RFC6793)

Basic support for:

  • Route Refresh (cap 2) (RFC2918)
  • Extended Messages for BGP (cap 6) (RFC8654)

Open-ended enum variants exist to support manually parsing and encoding unsupported or custom BGP capabilities and path attributes.

About

This project is a spin-off from delegation-feed (also in this Cargo workspace). However, it contains enough features to be useful on its own for creating BGP applications.

Dependencies

~1–7MB
~55K SLoC