All Projects → moznion → radius-rs

moznion / radius-rs

Licence: MIT license
An async/await native implementation of the RADIUS server and client for Rust.

Programming Languages

rust
11053 projects

Labels

Projects that are alternatives of or similar to radius-rs

Uiwidget
一个集成TabLayout、UIAlertDialog、UIActionSheetDialog、UIProgressDialog、TitleBarView(自带沉浸式标题栏)、CollapsingTitleBarLayout、RadiusView(圆角及状态背景设置View解放shape文件)、KeyboardHelper(软键盘控制及遮挡控制类)、StatusViewHelper(状态栏沉浸帮助类)、NavigationViewHelper(导航栏沉浸式帮助类)、AlphaViewHelper(View透明度控制帮助类) 等项目常用UI库
Stars: ✭ 400 (+614.29%)
Mutual labels:  radius
Freeradius Client
A BSD licenced RADIUS client library
Stars: ✭ 103 (+83.93%)
Mutual labels:  radius
Superxml
android布局能力增加,轻松实现圆角、边框、虚线、属性覆盖等功能。完全无侵入
Stars: ✭ 221 (+294.64%)
Mutual labels:  radius
Mikrotik Hotspot Sms
Stars: ✭ 23 (-58.93%)
Mutual labels:  radius
Skyradiusview
自定义view背景四边的圆角
Stars: ✭ 75 (+33.93%)
Mutual labels:  radius
Sharpview
安卓带有尖角气泡的控件(TextView,ImageView,EditText,Layout),支持渐变色,圆角等自定义属性
Stars: ✭ 137 (+144.64%)
Mutual labels:  radius
Toughradius
Beautiful open source RadiusServer
Stars: ✭ 376 (+571.43%)
Mutual labels:  radius
radiusd
Distributed Radius-server to do authentication+accounting.
Stars: ✭ 50 (-10.71%)
Mutual labels:  radius
Freeradius Server
FreeRADIUS - A multi-protocol policy server.
Stars: ✭ 1,379 (+2362.5%)
Mutual labels:  radius
Pyrad
Python RADIUS Implementation
Stars: ✭ 219 (+291.07%)
Mutual labels:  radius
Mts
Project of Multi-protocol Test Tool opensourced by Ericsson
Stars: ✭ 34 (-39.29%)
Mutual labels:  radius
Pam radius
This is the PAM to RADIUS authentication module. It allows any Linux, OSX or Solaris machine to become a RADIUS client for authentication and password change requests.
Stars: ✭ 69 (+23.21%)
Mutual labels:  radius
Openwisp Radius
Administration web interface and REST API for freeradius 3 build in django & python. Supports captive portal authentication, WPA Enerprise (802.1x), freeradius rlm_rest, social login, Hotspot 2.0 / 802.11u, importing users from CSV, registration of new users and more.
Stars: ✭ 206 (+267.86%)
Mutual labels:  radius
Gradientbutton
A Button that supports gradient ramp for background, the Angle of the circular, shadow. You can also customize it use hardcode.(支持渐变色背景、带阴影、可设置圆角的按钮)
Stars: ✭ 19 (-66.07%)
Mutual labels:  radius
RadiusView
[1.1.0以后版本由UIWidget维护,不做更新]Android 实现一个用于需要圆角矩形框背景的TextView或Layout的情况,减少直接使用时引入的shape资源文件,包括RadiusTextView,RadiusEditText,RadiusLinearLayout,RadiusRelativeLayout,RadiusFrameLayout,RadiusCheckBox,RadiusRadioButton,主要有圆角控制、默认背景(边框线)、按下背景(边框线)、不可点击背景(边框线)、选择selected背景(边框线)、选中checked背景(边框线);全圆角、四角单独设置圆角功能
Stars: ✭ 13 (-76.79%)
Mutual labels:  radius
Django Freeradius
Administration web interface and REST API for freeradius 3 build in django & python, development has moved to openwisp-radius
Stars: ✭ 392 (+600%)
Mutual labels:  radius
Distancepicker
Custom UIKit control to select a distance with a pan gesture, written in Swift
Stars: ✭ 118 (+110.71%)
Mutual labels:  radius
dialup-admin
The WebGUI administration tool for the FreeRADIUS server
Stars: ✭ 30 (-46.43%)
Mutual labels:  radius
ACRay
AnyConnect With V2Ray
Stars: ✭ 29 (-48.21%)
Mutual labels:  radius
Alpine Ikev2 Vpn
Small Simple Free runing container's IKEv2 VPN base alpine image.
Stars: ✭ 215 (+283.93%)
Mutual labels:  radius

radius-rs Check crates.io

An async/await native implementation of the RADIUS server and client for Rust. And this also can be used for parsing/constructing (i.e. decoding/encoding) purposes as a RADIUS library.

Description

This RADIUS server and client implementation use tokio to support asynchronous operations natively. This implementation satisfies basic functions that are described in RFC2865.

Usage

Simple example implementations are here:

Those examples implement a quite simple Access-Request processor. You can try those with the following commands.

$ RUST_LOG=debug cargo run --example server
$ RUST_LOG=debug cargo run --example client # in another shell

Supported Dictionaries

This supports the following RFC dictionaries at the moment:

Implementation guide for your RADIUS application

Common

  • Packet struct represents request packet and response one.
    • This struct has a list of AVPs.
    • You can get a specific AVP by RFC dictionary module.
      • e.g. rfc2865::lookup_user_name(packet)
        • This method returns Some(Result<String, AVPError>) if the packet contains User-Name attribute.
        • On the other hand, if the package doesn't have that attribute, it returns None.
    • You can construct a packet with RFC dictionary module.
      • e.g. rfc2865::add_user_name(&mut packet, "user")
        • This method adds a User-Name AVP to the packet.
    • Please refer to the rustdoc for each RFC dictionary module in detail.

Server

  • Must implement RequestHandler<T, E> interface.
    • This interface method is the core function of the server application what you need.
  • Please refer also to the example implementation: server

Client

  • Please refer also to the example implementation: client

Roadmap

  • Support the following RFC dictionaries:
    • rfc4679
    • rfc5447
    • rfc5580
    • rfc6929
    • rfc6930
    • rfc7268
    • rfc7499
    • rfc7930
    • rfc8045
    • rfc8559

Development guide for this library

How to generate code from dictionary

$ make gen

code-generator sub project has the responsibility to generate the Rust code according to given RFC dictionary files. The dictionary files are in dicts directory.

The format of the dictionary files respect the FreeRADIUS project's ones.

Note

The original implementation and design of this are inspired by layeh/radius.

Author

moznion ([email protected])

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].