Skip to content

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)

Next: Streaming data - handling large datasets