Introduction
dice-rs is a Rust library and toolkit for controlling
GoDice - physical
Bluetooth dice that communicate over Bluetooth Low Energy (BLE).
Motivation
GoDice are physical dice with embedded LEDs, an accelerometer, and a BLE
radio. They use the Nordic UART Service (NUS) profile for communication.
The official APIs from Particula are in JavaScript and Python. dice-rs
brings native Rust support with an idiomatic async API, type-safe domain
model, and a trait-based transport layer for testability.
Scope
The workspace provides five crates:
dice-rs- core library with domain types, BLE transport, and a high-level service APIdice-rs-cli- command-line tool for quick interactionsdice-rs-controller- GTK 4 desktop application with 3D dice renderingdice-rs-ws- WebSocket server for network-accessible dice eventsyatzy- Kniffel (Yatzy) game with GTK 4 UI, AI opponent, and GoDice integration (see Yatzy)
Where to Get Help
- GitHub Issues - bug reports and feature requests
- BLE Protocol - canonical protocol reference
- API Reference (docs.rs) - rustdoc for all crates