![PyPI Downloads](https://static.pepy.tech/badge/bgpy-pkg)
[![PyPI version](https://badge.fury.io/py/bgpy_pkg.svg)](https://badge.fury.io/py/bgpy_pkg)
![PyPy](https://img.shields.io/badge/PyPy-7.3.17-blue)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/bgpy_pkg)](https://pypi.org/project/bgpy_pkg/)
![Tests](https://github.com/jfuruness/bgpy/actions/workflows/tests.yml/badge.svg)
![Linux](https://img.shields.io/badge/os-Linux-blue.svg)
![macOS Intel](https://img.shields.io/badge/os-macOS_Intel-lightgrey.svg)
![macOS ARM](https://img.shields.io/badge/os-macOS_ARM-lightgrey.svg)
[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Checked with mypy](https://img.shields.io/badge/mypy-checked-2A6DBA.svg)](http://mypy-lang.org/)
[![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https://pycqa.github.io/isort/)
[![Pylint](https://img.shields.io/badge/linting-pylint-yellowgreen)](https://github.com/pylint-dev/pylint/tree/main)
[![try/except style: tryceratops](https://img.shields.io/badge/try%2Fexcept%20style-tryceratops%20%F0%9F%A6%96%E2%9C%A8-black)](https://github.com/guilatrova/tryceratops)

### If you like the repo, it would be awesome if you could add a star to it! It really helps out the visibility. Also for any questions we'd love to hear from you at jfuruness@gmail.com

Welcome to BGPy! One of the worlds leading Python BGP security simulators. You're in good company; this simulator has been used by teams all around the world, including NIST. BGPy is also [peer-reviewed research](https://dl.acm.org/doi/fullHtml/10.1145/3607505.3607509) and has been featured in [several publications](https://github.com/jfuruness/bgpy/wiki/Citations-and-Use-Cases), with many more ongoing.

With BGPy, you can simulate the entire internet topology on your laptop. You can program your own security policies & attacks, use the topology for custom analysis, use real-world ROV data, etc. BGPy also comes with a custom test suite that allows for easy testing of security protocols. We support [more than 20 policies](https://github.com/jfuruness/bgpy_pkg/wiki/Routing-Policies) including ROV, ASPA,  and ASRA.

If you're looking for an in depth tutorial as to the features, and how to use BGPy, I highly recommend the [tutorial](https://github.com/jfuruness/bgpy/wiki/Tutorial).

If you're just looking to run/visualize attack/defense scenarios without programming, I recommend checking out the front-end for this tool: [BGPSimulator.com](https://www.bgpsimulator.com)

If you're looking to cite BGPy or check out the use cases, you can find that [here](https://github.com/jfuruness/bgpy/wiki/Citations-and-Use-Cases). If you end up citing BGPy please let us know and we'll add you to the list :)

##### Table of Contents

* [Tutorial](https://github.com/jfuruness/bgpy/wiki/Tutorial)
* [Citations and Use Cases](https://github.com/jfuruness/bgpy/wiki/Citations-and-Use-Cases)
* [Installation](https://github.com/jfuruness/bgpy/wiki/Installation)
* [Testing](https://github.com/jfuruness/bgpy/wiki/Testing)
* [Development/Contributing](https://github.com/jfuruness/bgpy/wiki/Development-Contributing)
* [History](https://github.com/jfuruness/bgpy/wiki/History)
* [Credits](https://github.com/jfuruness/bgpy/wiki/Credits)
* [License](https://github.com/jfuruness/bgpy/blob/master/LICENSE)
* [FAQ](https://github.com/jfuruness/bgpy/wiki/FAQ)
