README.md
# TinyRadius-Netty [](https://github.com/globalreachtech/tinyradius-netty/actions/workflows/gradle.yml)[](https://codeclimate.com/github/globalreachtech/tinyradius-netty/maintainability)[](https://coveralls.io/github/globalreachtech/tinyradius-netty?branch=master)[](https://sonarcloud.io/summary/new_code?id=globalreachtech_tinyradius-netty)[](https://snyk.io/test/github/globalreachtech/tinyradius-netty) [](https://search.maven.org/artifact/com.globalreachtech/tinyradius-netty)[](https://javadoc.io/doc/com.globalreachtech/tinyradius-netty) TinyRadius-Netty is a Java Radius library, loosely based off the TinyRadius Radius library, rebuilt with Java 8 and Netty patterns/features. ## Features- Sends/receives Radius packets- Signs and verifies Request Authenticator for Access and Accounting requests/responses- Supports verifying and encoding for PAP, CHAP, and EAP (Message-Authenticator)- Attach arbitrary attributes to packets- Loads dictionaries recursively from file system or classpath (Radiator/FreeRadius format) ### Improvements over TinyRadius- Netty for async IO, timeouts, thread management- Handlers follow Netty's interceptor filter pattern, blocking calls use promises- log4j2 instead of commons-logging- Java 6-11 features (generics, NIO, lambdas, streams)- Packets and Attributes are fully immutable- 80%+ test coverage- Proxy no longer a separate implementation, but a promise-based adapter between the client and server classes ## Usage See the [e2e tests](src/test/java/org/tinyradius/e2e/EndToEndTest.java) on usage as Client/Server/Proxy. ## Maintainers - Ensure you have user tokens for [Central Portal](https://central.sonatype.org/publish-ea/publish-ea-guide/) instead of legacy OSSRH- [Set up GPG](https://central.sonatype.org/publish/requirements/gpg/) for artifact signing- [Publish locally](https://jreleaser.org/guide/latest/examples/maven/staging-artifacts.html#_gradle) and confirm artifacts- Use JReleaser following [Portal Publisher config](https://jreleaser.org/guide/latest/examples/maven/maven-central.html#_gradle) ## LicenseCopyright Matthias Wuttke and contributors:- http://tinyradius.sourceforge.net/- https://github.com/ctran/TinyRadius- https://github.com/globalreachtech/tinyradius-netty Licensed under LGPL 2.1