Introduction
pyrad3 is an implementation of a RADIUS client/server as described in RFC2865. It takes care of all the details like building RADIUS packets, sending them and decoding responses.
This is the successor of pyrad. It is written in python3 only (python3.7+) and has an improved API.
Requirements & Installation
pyrad requires Python 3.7 or later. Currently no external dependencies are needed to use pyrad3.
# Install from pypi
pip install pyrad3
# Install from the repository
git clone https://github.com/pyradius/pyrad3
pip install .
# Installing with poetry
git clone https://github.com/pyradius/pyrad3
poetry install --no-dev # for usage; without optional dev dependencies
poetry install # for development
Development
pyrad3 usese quite a lot of linters and development tools:
- coveralls
- black
- poetry
- pytest
- pytest-black
- pytest-cov
- pytest-flake8
- pytest-isort
- pytest-mypy
- pytest-pylint
- tox
- sphinx
This project uses poetry as it packaging and dependency management tool. The
configuration is done via pyproject.toml. To install this package with pip install, a pip version greater than 19.0 is required.
When poetry is installed, the development dependencies can be installed with
poetry install --no-root. Omitting the --no-root parameter will additionally
install pyrad3 itself.
with nix
Generating the documentation
Sphinx is used for the documentation. It can be either run directly with
or with make (requires gnumake to be installed.)
TODO: no documentation yet.
Running tests locally
pyrad3 comes with a tox configuration (check the [tool.tox] section in
./pyproject.) Tox will set up test environments for all supported python
versions and run them automatically.
It is necessary that the python versions are installed otherwise tox will fail.
To execute a test with a single python version run tox -e $version, e.g.
tox -e py38.
License
pyrad3 is distributed under the terms of both the MIT License and the Apache License (Version 2.0).
See LICENSE-APACHE and LICENSE-MIT for details.