#open-wrt #api-bindings #linux

no-std ubus

Work-in-progress: OpenWRT ubus client library in pure Rust

8 releases

Uses new Rust 2024

0.1.7 Mar 6, 2025
0.1.6 Feb 27, 2025
0.1.5 Jan 16, 2024
0.1.4 Dec 30, 2023
0.1.0 Nov 30, 2023

#350 in Unix APIs

Download history 106/week @ 2025-07-18 90/week @ 2025-07-25 97/week @ 2025-08-01 73/week @ 2025-08-08 54/week @ 2025-08-15 52/week @ 2025-08-22 57/week @ 2025-08-29 144/week @ 2025-09-05 131/week @ 2025-09-12 80/week @ 2025-09-19 114/week @ 2025-09-26 147/week @ 2025-10-03 91/week @ 2025-10-10 148/week @ 2025-10-17 131/week @ 2025-10-24 89/week @ 2025-10-31

488 downloads per month

BSD-2-Clause

54KB
1K SLoC

ubus (Rust)

Work in progress

This is a pure Rust library for implementing OpenWRT ubus clients.

Goals

  • Minimal bloat
  • Few dependencies
  • Zero allocations inside main code
  • no_std where possible
  • Don't panic!

Supported

  • Unix-Domain-Socket + Type-Length-Value protocol support
  • blob TLV format support
  • High-level abstraction for lookup command
  • High level abstraction for call command
  • JSON support

TODO

  • High level abstraction for subscribe/unsubscribe commands
  • HTTP(S) + JSON protocol support

Dependencies

~0.7–1.7MB
~35K SLoC