Skip to main content

Netlink client for asyncio

Project description

aiortnetlink

Pure-python asyncio rtnetlink client.

Getting started

Install from PyPI:

pip install aiortnetlink

Or, adding to your uv project:

uv add aiortnetlink

Example:

from aiortnetlink import NetlinkClient

async with NetlinkClient() as nl:
    async for link in nl.get_links():
        print(f"{link.index}: {link.name}")

The module ships with a CLI, for example if running from the repository root:

uv run aiortnetlink addr show

Supported features

Links

  • get_links: List all links.
  • get_link: Lookup link by index or name.

Addresses

  • get_links: List all addresses.
  • add_addr: Add IP address to link.
  • del_addr: Remove IP address from link.

Routes

  • get_routes: List all routes.

Rules

  • get_rules: List all rules.

Notifications

  • recv_notification: Receive netlink notification. Notification subscription is done by passing the revelant rtnetlink groups to the netlink client.

Development

This project uses uv for project management and poe the poet to run development tasks. Linting and code formatting is done using ruff, type checking using mypy and tests using pytest.

For example to run all checks locally:

uvx --from poethepoet poe lint

To format code using ruff:

uvx --from poethepoet poe fmt

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aiortnetlink-0.2.0.tar.gz (27.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aiortnetlink-0.2.0-py3-none-any.whl (25.9 kB view details)

Uploaded Python 3

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page