Change-Id: Ica5e0c52b985e234e960d712e20a6df874e66b35
GNPy API
REST API (experimental)
This repository extends GNPy with additional interfaces, allowing for more flexible control and interaction with its simulation engine. These interfaces can be used to integrate GNPy into software-defined networking (SDN) architectures or other external applications.
GNPy is an open-source Python-based library that models and evaluates the performance of optical networks. It is widely used for path computation, QoT (Quality of Transmission) estimation, and network planning.
🚀 Installation
Build from Source - Option 1
Clone the repository and install the package:
python3 setup.py install
or if you want to install it in a docker container:
docker docker build ./ -t gnpy-api
PiPy - Option 2
pip install gnpy-api
DockerHub - Option 3
Coming....
Quick Start
🧪 Usage - CLI
Start the REST API server:
python ./samples/rest_example.py
See the help for the REST API:
python ./samples/rest_example.py -h
Send example data to the REST API:
curl --location 'https://localhost:8080/api/v0.1/path-request' --header 'Content-Type: application/json' --data @gnpyapi/exampledata/planning_demand_example.json -k
🧪 Usage - Docker
🔄 Compatibility
Different versions of this interface extension are compatible with specific versions of GNPy. Please refer to the table below to ensure that you are using a supported version combination.
| Interface Version | Compatible GNPy Version | Notes |
|---|---|---|
v0.1.x |
>=2.12.1 |
Initial release |
⚠️ If you use an incompatible combination, some features may not work correctly or may produce unexpected errors.
To check your GNPy version, run:
pip show gnpy
📚 Documentation
Refer to the official GNPy documentation for information about network modeling and simulation capabilities.
API documentation is available in the docs folder.