beaconc Library Landing Page is Live!

187 words 1 minute Projects beaconc Announcement Rust

The beaconc client library now has a dedicated landing page on the site.

After completing the beacond daemon, I developed beaconc as the client library for applications that need to interact with the daemon. The library provides a type-safe async interface to all beacond operations via DBus.

What beaconc Does

beaconc is an async Rust library that abstracts the DBus interface to beacond. Instead of working with DBus primitives directly, applications can use straightforward async functions:

let client = BeaconClient::new().await?;
client.activate_signal("warning").await?;

The library handles connection management, signal subscriptions, and type marshaling automatically.

Technical Details

The implementation focuses on minimal dependencies (tokio, zbus, futures-util) and compatibility with single-threaded async runtimes. It provides typed interfaces for all daemon operations: signal control, event monitoring, and flexible connection options.

All core functionality is implemented and tested. The library supports session bus, system bus, and custom DBus addresses.

Documentation

The beaconc project page includes code examples and architecture overview. Complete documentation with ADRs and requirements is available in the repository.

The library is designed for embedded Linux applications that need to coordinate hardware signals through beacond.