Skip to content

API Reference

Complete Python API documentation for PyBGPKITStream.

Core Classes

BGPKITStream

The main class for creating and iterating through BGP streams.

from pybgpkitstream import BGPStreamConfig, BGPKITStream
import datetime

config = BGPStreamConfig(
    start_time=datetime.datetime(2010, 9, 1, 0, 0),
    end_time=datetime.datetime(2010, 9, 1, 2, 0),
    collectors=["route-views.wide"],
)

stream = BGPKITStream.from_config(config)
for elem in stream:
    print(elem)

Configuration Classes

  • BGPStreamConfig: Main configuration for historical BGP streams
  • LiveStreamConfig: Configuration for live RIS Live streams
  • FilterOptions: Filtering options for BGP elements
from pybgpkitstream import BGPStreamConfig, FilterOptions

config = BGPStreamConfig(
    start_time=...,
    end_time=...,
    collectors=["route-views.wide"],
    filters=FilterOptions(peer_asn=2497),
)

BGPElement

The data structure representing individual BGP messages.

# Access element data
elem.type        # "R", "A", or "W"
elem.time        # Unix timestamp
elem.collector   # Collector name
elem.peer_asn    # BGP peer AS number
elem.peer_address # BGP peer IP
elem.fields      # Dictionary with prefix, as-path, etc.

Parsers

Details about parser backends and how to select them →

  • pybgpkit: Python bindings of bgpkit-parser, no system dependencies (default, slower)
  • bgpkit-parser: Fast Rust parser, requires system installation
  • bgpdump: Classic MRT parser, requires system installation
  • pybgpstream: Fast Python bindings for bgpstream, requires system installation

Module Structure

pybgpkitstream/
├── __init__.py              # Main exports
├── bgpkitstream.py          # BGPKITStream class
├── bgpstreamconfig.py       # Configuration classes
├── bgpelement.py            # BGPElement NamedTuple
├── bgpparser.py             # Parser implementations
├── rislive.py               # RIS Live streaming
├── utils.py                 # Utility functions
└── cli.py                   # CLI interface