Broker Backends¶
PyBGPFlux supports multiple broker backends.
Available Brokers¶
BGPKIT (Default)¶
- Name:
bgpkit - About: From the BGPKIT project, used in production at Cloudflare
- Self-hostable: Yes
BGPStream v2¶
- Name:
bgpstream - About: From CAIDA, UCSD
- Self-hostable: No
- Note: New collectors and some archives (e.g., RIS in early 2026) are missing
Usage:
from pybgpflux import BGPStreamConfig, BGPStream
config = BGPStreamConfig(
...,
broker="bgpstream",
)
stream = BGPStream.from_config(config)
BGPFinder¶
- Name:
bgpfinder - About: Georgia Tech's implementation of BGPStream v2 API
- Self-hostable: Yes
Usage:
from pybgpflux import BGPStreamConfig, BGPStream
config = BGPStreamConfig(
...,
broker="bgpfinder",
)
stream = BGPStream.from_config(config)
Using brokers without streaming data¶
You can also use brokers independently:
import datetime
from pybgpflux.brokers import BGPStreamBroker, BGPKITBroker
from pybgpflux import BGPStreamConfig
config = BGPStreamConfig(
start_time=datetime.datetime(2010, 9, 1, 0, 1),
end_time=datetime.datetime(2010, 9, 1, 0, 59),
collectors=["route-views.wide"],
data_types=["ribs", "updates"],
)
bgpkit_items = BGPKITBroker().query(config)
caida_items = BGPStreamBroker(url="https://broker.bgpstream.caida.org/v2").query(config)
assert len(bgpkit_items) == len(caida_items)