beacond

A priority-based signal daemon that keeps your embedded Linux devices blinking in perfect harmony.

Ever had multiple applications fighting over who gets to control your device's LED? Or a buzzer that can't decide if it's beeping for an error or a notification? Yeah, we've all been there.

beacond is here to be the diplomatic referee your embedded system deserves. It's a priority-based signal daemon that makes sure your LEDs, buzzers, and displays play nicely together—no matter how many applications are trying to get their message across.

What's the Big Deal?

Instead of having applications directly wrestle for control of your hardware, beacond introduces some civilization:

  • Priority Resolution: Important signals always win (your fire alarm beats your notification LED)
  • Pattern Synchronization: All your blinking patterns stay in sync globally (because chaos is overrated)
  • DBus Control: Clean API for applications to activate/deactivate signals without sudo privileges
  • Atomic Patterns: Some sequences just shouldn't be interrupted—we got you covered

Current Status

🚀 Core Implementation Complete - The daemon is feature-complete with a fully functional DBus API, priority resolution engine, and I/O layer. Currently in testing phase before production deployment.

Built with Rust because we like our daemons fast, safe, and unlikely to segfault at 3 AM.

  • Repository: codeberg.org/obscurity-de/obscurity-beacond
  • Documentation: Comprehensive docs in the repository covering everything from high-level concepts to API specifications
  • License: EUPL-1.2 (because Europe needs love too)

Tech Stack

  • Rust with tokio for async I/O
  • zbus for DBus integration
  • TOML for configuration (because JSON is so 2010)
  • Target platform: Embedded Linux (Yocto/buildroot)

Perfect for: IoT devices, embedded systems, industrial controllers, or anywhere you need coordinated feedback without the headache.

Skills & Technologies