YANGcore (a RESTCONF-based Application Server)
Project description
YANGcore
YANGcore is a Python based application server having a RESTCONF-based interface binding to a SQL Alchemy-based database backend.
Installation
pip install yangcore
Overview
- HTTPS or HTTP
- RESTCONF HEAD, GET, POST, PUT, and DELETE work over entire tree.
- Ordered-by user query parameters ('insert' and 'point') work.
- List Pagination query parameters ('limit', 'offset', and 'direction') work.
- The ./well-known/host-meta, RESTCONF root (i.e., {+restconf}), and YANG-library resources.
- Tested using in-memory, file-base, MySQL and, a long time ago, AWS Aurora and Postgres.
- TLS connection to backend RDBMS, with or w/o client certificate.
- Logging and dynamic callouts for Audit log and Notifications log
- Database-level transactions and concurrent access.
- In-memory database support for ephemeral use-cases.
- Lightweight and fast: single-threaded Asynchronous I/O.
- Python 3.11 and 3.12
Motivation
RESTCONF is great REST API right out of the box. The API is auto-generated off of a collection of YANG modules, which defines the API contract. YANG is the popular data modelling langauge defined by the IETF (RFC 7950)and recommended by the Internet Architecture Board.
As far as APIs go, RESTCONF (RFC 8040) scores high on both the Richardson Maturity Model and the Amundsen Maturity Model models. See API Maturity for a description for what makes for a good API.
Python is a popular programming language. A Python implementation of a RESTCONF server seems like it could be popular. Searching for Python-based RESTCONF tooling found Jetconf, but its been abandoned.
Thus there seemed to be an opportunity to work and YANGcore became something.
More Information
Please see the documentation for more information.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file yangcore-0.0.98.tar.gz.
File metadata
- Download URL: yangcore-0.0.98.tar.gz
- Upload date:
- Size: 122.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f0488e8ed2f5da2ac47000f79fead2b6aec086d0a4e25ede0288c49d5caeb280
|
|
| MD5 |
f33309313becbd24f680435ade7f572f
|
|
| BLAKE2b-256 |
0e90da54d52f51d7b2ba12c34ebe9ae4830b1a4826dd69563bdeef2c879c2f8d
|
Provenance
The following attestation bundles were made for yangcore-0.0.98.tar.gz:
Publisher:
pull_request_closed.yml on watsen-networks/yangcore
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
yangcore-0.0.98.tar.gz -
Subject digest:
f0488e8ed2f5da2ac47000f79fead2b6aec086d0a4e25ede0288c49d5caeb280 - Sigstore transparency entry: 869219599
- Sigstore integration time:
-
Permalink:
watsen-networks/yangcore@8689214a9869f14e57245371335f479f71934eff -
Branch / Tag:
refs/heads/main - Owner: https://github.com/watsen-networks
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pull_request_closed.yml@8689214a9869f14e57245371335f479f71934eff -
Trigger Event:
push
-
Statement type: