<!-- markdownlint-disable -->
<p align="center">
<img src="docs/images/SVG/Transparent/logo-thin.svg#gh-light-mode-only" alt="NIAPI Logo - Light" width="100%" height="auto" />
<img src="docs/images/SVG/Transparent/logo-dark-thin.svg#gh-dark-mode-only" alt="NIAPI Logo - Dark" width="100%" height="auto" />
</p>
<!-- markdownlint-restore -->
<div align="center">
<!-- prettier-ignore-start -->
| Project | | Status |
|-----------|:----|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| CI/CD | | [![Latest Release](https://github.com/JacobCoffee/niapi/actions/workflows/publish.yaml/badge.svg)](https://github.com/JacobCoffee/niapi/actions/workflows/publish.yaml) [![ci](https://github.com/JacobCoffee/niapi/actions/workflows/ci.yaml/badge.svg)](https://github.com/JacobCoffee/niapi/actions/workflows/ci.yaml) [![Documentation Building](https://github.com/JacobCoffee/niapi/actions/workflows/docs.yaml/badge.svg)](https://github.com/JacobCoffee/niapi/actions/workflows/docs.yaml) [![CodeQL](https://github.com/JacobCoffee/niapi/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/JacobCoffee/niapi/actions/workflows/github-code-scanning/codeql) |
| Package | | [![PyPI - Version](https://img.shields.io/pypi/v/niapi)](https://badge.fury.io/py/niapi) ![PyPI - Support Python Versions](https://img.shields.io/pypi/pyversions/niapi) |
| Quality | | [![codecov](https://codecov.io/gh/JacobCoffee/niapi/branch/main/graph/badge.svg?token=SFT67X4MEQ)](https://codecov.io/gh/JacobCoffee/niapi) [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=JacobCoffee_niapi&metric=coverage)](https://sonarcloud.io/summary/new_code?id=JacobCoffee_niapi) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=JacobCoffee_niapi&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=JacobCoffee_niapi) [![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=JacobCoffee_niapi&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=JacobCoffee_niapi) [![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=JacobCoffee_niapi&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=JacobCoffee_niapi) [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=JacobCoffee_niapi&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=JacobCoffee_niapi) [![Known Vulnerabilities](https://snyk.io/test/github/JacobCoffee/niapi/badge.svg)](https://snyk.io/test/github/JacobCoffee/niapi) |
| Community | | [![Twitter](https://img.shields.io/twitter/follow/_scriptr?style=social&logo=twitter)](https://twitter.com/_scriptr) |
| Meta | | [![Litestar Framework](https://img.shields.io/badge/Litestar%20Framework-%E2%AD%90%20Litestar-202235.svg)](https://github.com/JacobCoffee/niapi) [![linting - 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) [![types - Mypy](https://img.shields.io/badge/types-Mypy-85c7f2.svg)](https://github.com/python/mypy) [![License - MIT](https://img.shields.io/badge/license-MIT-85c7f2.svg)](https://spdx.org/licenses/) [![GitHub Sponsors](https://img.shields.io/github/sponsors/JacobCoffee?logo=GitHub%20Sponsors&style=social)](https://github.com/sponsors/JacobCoffee) |
[![SonarCloud](https://sonarcloud.io/images/project_badges/sonarcloud-white.svg)](https://sonarcloud.io/summary/new_code?id=JacobCoffee_niapi)
<!-- prettier-ignore-end -->
</div>
# `niapi` - Network Information API
[//]: # "TODO"
## Table of Contents
- [About](#about)
- [Installation](#installation)
- [Usage](#usage)
- [Contributing](#contributing)
- [Contributors](#contributors)
- [License](#license)
- [Acknowledgements](#acknowledgements)
- [Screenshots](#screenshots)
## About
[//]: # "TODO"
## Installation
```console
pip install niapi
```
## Usage
[//]: # "TODO"
Install the project:
```console
pip install -e .
```
Run the project:
> **NOTE:** From within the virtual environment
```console
app run -r --debug
```
Using the CLI:
```console
# via curl
➜ curl --request GET \
--url 'http://0.0.0.0:8000/calculator/ip?ip=4.8.15.16&prefix=23' \
--header 'Content-Type: application/json'
# via App CLI
# TODO
app calculate "10.248.15.39/29"
```
Using the API
1. Browse to:
- [Swagger](http://127.0.0.1:8000/api/swagger#/)
- [Elements](http://127.0.0.1:8000/api/elements/)
2. Use the auto-generated API docs to interact with the API
From around the web:
Browse to https://niapi.app/ and use the front page form, API, or `curl`
to interact with the API.
## Contributing
See [CONTRIBUTING.rst](CONTRIBUTING.rst) for more information.
Start the app:
```console
app run-all
```
Start the TailwindCSS watcher:
```console
tailwindcss -i niapi/domain/web/resources/input.css -o niapi/domain/web/resources/style.css --watch
```
## Contributors
[//]: # "TODO"
## License
[MIT](LICENSE)
## Acknowledgements
- Built on Litestar and Pydantic
- Using https://feathericons.dev/
- Using TailwindCSS
## Screenshots
[//]: # "TODO"
![home.png](docs/images/index.png)
![home-dark.png](docs/images/index-dark.png)
![img.png](docs/images/output.png)
Raw data
{
"_id": null,
"home_page": "https://github.com/JacobCoffee/niapi",
"name": "niapi",
"maintainer": "Jacob Coffee",
"docs_url": null,
"requires_python": ">=3.11,<4.0",
"maintainer_email": "jacob@z7x.org",
"keywords": "niapi,network,api,tool,rest,http,asgi,pydantic,litestar,starlite,websocket",
"author": "Jacob Coffee",
"author_email": "jacob@z7x.org",
"download_url": "https://files.pythonhosted.org/packages/c8/01/850dcc9104fccdc789031369529a85f5280928f99044e9347334991a313d/niapi-0.5.0.tar.gz",
"platform": null,
"description": "<!-- markdownlint-disable -->\n<p align=\"center\">\n <img src=\"docs/images/SVG/Transparent/logo-thin.svg#gh-light-mode-only\" alt=\"NIAPI Logo - Light\" width=\"100%\" height=\"auto\" />\n <img src=\"docs/images/SVG/Transparent/logo-dark-thin.svg#gh-dark-mode-only\" alt=\"NIAPI Logo - Dark\" width=\"100%\" height=\"auto\" />\n</p>\n<!-- markdownlint-restore -->\n\n<div align=\"center\">\n\n<!-- prettier-ignore-start -->\n\n| Project | | Status |\n|-----------|:----|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| CI/CD | | [![Latest Release](https://github.com/JacobCoffee/niapi/actions/workflows/publish.yaml/badge.svg)](https://github.com/JacobCoffee/niapi/actions/workflows/publish.yaml) [![ci](https://github.com/JacobCoffee/niapi/actions/workflows/ci.yaml/badge.svg)](https://github.com/JacobCoffee/niapi/actions/workflows/ci.yaml) [![Documentation Building](https://github.com/JacobCoffee/niapi/actions/workflows/docs.yaml/badge.svg)](https://github.com/JacobCoffee/niapi/actions/workflows/docs.yaml) [![CodeQL](https://github.com/JacobCoffee/niapi/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/JacobCoffee/niapi/actions/workflows/github-code-scanning/codeql) |\n| Package | | [![PyPI - Version](https://img.shields.io/pypi/v/niapi)](https://badge.fury.io/py/niapi) ![PyPI - Support Python Versions](https://img.shields.io/pypi/pyversions/niapi) |\n| Quality | | [![codecov](https://codecov.io/gh/JacobCoffee/niapi/branch/main/graph/badge.svg?token=SFT67X4MEQ)](https://codecov.io/gh/JacobCoffee/niapi) [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=JacobCoffee_niapi&metric=coverage)](https://sonarcloud.io/summary/new_code?id=JacobCoffee_niapi) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=JacobCoffee_niapi&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=JacobCoffee_niapi) [![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=JacobCoffee_niapi&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=JacobCoffee_niapi) [![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=JacobCoffee_niapi&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=JacobCoffee_niapi) [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=JacobCoffee_niapi&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=JacobCoffee_niapi) [![Known Vulnerabilities](https://snyk.io/test/github/JacobCoffee/niapi/badge.svg)](https://snyk.io/test/github/JacobCoffee/niapi) |\n| Community | | [![Twitter](https://img.shields.io/twitter/follow/_scriptr?style=social&logo=twitter)](https://twitter.com/_scriptr) |\n| Meta | | [![Litestar Framework](https://img.shields.io/badge/Litestar%20Framework-%E2%AD%90%20Litestar-202235.svg)](https://github.com/JacobCoffee/niapi) [![linting - 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) [![types - Mypy](https://img.shields.io/badge/types-Mypy-85c7f2.svg)](https://github.com/python/mypy) [![License - MIT](https://img.shields.io/badge/license-MIT-85c7f2.svg)](https://spdx.org/licenses/) [![GitHub Sponsors](https://img.shields.io/github/sponsors/JacobCoffee?logo=GitHub%20Sponsors&style=social)](https://github.com/sponsors/JacobCoffee) |\n\n[![SonarCloud](https://sonarcloud.io/images/project_badges/sonarcloud-white.svg)](https://sonarcloud.io/summary/new_code?id=JacobCoffee_niapi)\n\n<!-- prettier-ignore-end -->\n\n</div>\n\n# `niapi` - Network Information API\n\n[//]: # \"TODO\"\n\n## Table of Contents\n\n- [About](#about)\n- [Installation](#installation)\n- [Usage](#usage)\n- [Contributing](#contributing)\n- [Contributors](#contributors)\n- [License](#license)\n- [Acknowledgements](#acknowledgements)\n- [Screenshots](#screenshots)\n\n## About\n\n[//]: # \"TODO\"\n\n## Installation\n\n```console\npip install niapi\n```\n\n## Usage\n\n[//]: # \"TODO\"\n\nInstall the project:\n\n```console\npip install -e .\n```\n\nRun the project:\n\n> **NOTE:** From within the virtual environment\n\n```console\napp run -r --debug\n```\n\nUsing the CLI:\n\n```console\n# via curl\n\u279c curl --request GET \\\n --url 'http://0.0.0.0:8000/calculator/ip?ip=4.8.15.16&prefix=23' \\\n --header 'Content-Type: application/json'\n# via App CLI\n# TODO\napp calculate \"10.248.15.39/29\"\n```\n\nUsing the API\n\n1. Browse to:\n - [Swagger](http://127.0.0.1:8000/api/swagger#/)\n - [Elements](http://127.0.0.1:8000/api/elements/)\n2. Use the auto-generated API docs to interact with the API\n\nFrom around the web:\n\nBrowse to https://niapi.app/ and use the front page form, API, or `curl`\nto interact with the API.\n\n## Contributing\n\nSee [CONTRIBUTING.rst](CONTRIBUTING.rst) for more information.\n\nStart the app:\n\n```console\napp run-all\n```\n\nStart the TailwindCSS watcher:\n\n```console\ntailwindcss -i niapi/domain/web/resources/input.css -o niapi/domain/web/resources/style.css --watch\n```\n\n## Contributors\n\n[//]: # \"TODO\"\n\n## License\n\n[MIT](LICENSE)\n\n## Acknowledgements\n\n- Built on Litestar and Pydantic\n- Using https://feathericons.dev/\n- Using TailwindCSS\n\n## Screenshots\n\n[//]: # \"TODO\"\n\n![home.png](docs/images/index.png)\n![home-dark.png](docs/images/index-dark.png)\n![img.png](docs/images/output.png)\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Network Data API",
"version": "0.5.0",
"project_urls": {
"Changelog": "https://github.com/JacobCoffee/niapi/releases/",
"Documentation": "https://jacobcoffee.github.io/niapi/index.html",
"Homepage": "https://github.com/JacobCoffee/niapi",
"Issue Tracker": "https://github.com/JacobCoffee/niapi/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc",
"Reddit": "https://www.reddit.com/u/monorepo",
"Repository": "https://github.com/JacobCoffee/niapi",
"Twitter": "https://twitter.com/_scriptr"
},
"split_keywords": [
"niapi",
"network",
"api",
"tool",
"rest",
"http",
"asgi",
"pydantic",
"litestar",
"starlite",
"websocket"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "96fbb315388b70edc35cc31138ddeb1417084e632a2f6f8e8a4f5f9b3a1af7cb",
"md5": "1793398791e90257ab890e1204cc8549",
"sha256": "3fc4a3cfb61e3d75fc103eb1369ebabbd5ce2cd20a3758ec719efd2ba6d2e5b7"
},
"downloads": -1,
"filename": "niapi-0.5.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1793398791e90257ab890e1204cc8549",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11,<4.0",
"size": 98838,
"upload_time": "2023-07-20T06:37:25",
"upload_time_iso_8601": "2023-07-20T06:37:25.596665Z",
"url": "https://files.pythonhosted.org/packages/96/fb/b315388b70edc35cc31138ddeb1417084e632a2f6f8e8a4f5f9b3a1af7cb/niapi-0.5.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c801850dcc9104fccdc789031369529a85f5280928f99044e9347334991a313d",
"md5": "bccf7db03d10223f93fc9aad2c19d310",
"sha256": "c9528843b45328ab8a73201ef06bddb6adb199633338be029ce991c6b79595ce"
},
"downloads": -1,
"filename": "niapi-0.5.0.tar.gz",
"has_sig": false,
"md5_digest": "bccf7db03d10223f93fc9aad2c19d310",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11,<4.0",
"size": 92059,
"upload_time": "2023-07-20T06:37:27",
"upload_time_iso_8601": "2023-07-20T06:37:27.175462Z",
"url": "https://files.pythonhosted.org/packages/c8/01/850dcc9104fccdc789031369529a85f5280928f99044e9347334991a313d/niapi-0.5.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-07-20 06:37:27",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "JacobCoffee",
"github_project": "niapi",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "niapi"
}