StickUp
๐ Update: v0.2.9 is here!
StickUp v0.2.9 adds:
- A full event system with
InputEventBussupporting listener registration, filtering, and dispatch. - Support for axis and button events, with custom filtering via
EventFilterandFilteredListener. - Built-in
Loggerfor debugging input streams. - Integration with
DeviceManagerfor automatic event emission on polling and snapshot.
Built to scale with sim rigs, overlays, game engines, and beyond.
- v0.3.0 coming soon with custom device input parsing.
๐ Huge thanks to everyone testing and sharing! Your support means the world to me. -Bel
๐ฎ What is StickUp?
StickUp is a modular, high-performance input framework for Rust.
It supports both real HID devices and virtual inputs with clarity, precision, and stability.
Part of the CelerisTech stack by Belegrade Studio
๐ Security Note
The name stickup was previously used in 2023 for a malicious crate that has since been removed from crates.io.
This version โ authored by Belegrade Studio โ is a clean and fully rewritten project, unrelated to the original.
โ No
build.rs
โ No network activity
โ 100% open and auditable
Transparency matters. Feel free to inspect the source or reach out directly.
โจ Features
- ๐ Plug-and-play device management via
DeviceManager - ๐ฎ Unified
Devicetrait for axis + button input - ๐ง Persistent device identity (hardware fingerprinting)
- ๐งฐ Binding resolution like
"joy0.axis1"โOption<f32> - ๐ Snapshot-based polling and input state tracking
- ๐ง Hotplug-friendly and fully extendable
- ๐ Supports
hidandvirtualbackends via optional features - ๐ก Zero magic โ minimal, intentional design
๐งญ Philosophy
StickUp is about presence, clarity, and persistence.
It doesnโt guess. It doesnโt simulate. It reflects exactly what your device is doing โ no more, no less.
๐ฆ Installation
= { = "0.2.1", = ["hid", "virtual"] }
use DeviceManager;
๐งฌ Device Identity
StickUp assigns a stable, persistent ID to each device:
vendor_id:product_id:serial_number
# Example: 044f:0402:ABCD1234
This allows for consistent bindings across reboots and USB port changes.
๐ Examples
Run any with:
pollโ Print a full snapshot of all input statevirtual_demoโ Feed input into a simulated virtual device
๐ ๏ธ Optional Features
| Feature | Description |
|---|---|
hid (default) |
Enables HID device support via hidapi |
virtual |
Enables manually fed virtual devices |
๐ฎ Coming Next: Event Listeners
The next update will include a complete and functional input parser to ensure compatability with everything from a simple arcade style joysticks to full HOSAS equipped sim-rigs.
๐ License
This project is licensed under the Pact of the Amaranth Rite.
See LICENSE for details.
Third-Party Dependencies
hidapiโ MIT/Apache-2.0 (HID support)serdeโ MIT/Apache-2.0 (serialization)serde_jsonโ MIT/Apache-2.0 (layout/config IO)tomlโ MIT/Apache-2.0 (if config parsing used)
๐ฌ Connect
- โ๏ธ Email: belegrade@belegrades.gg
- ๐ฌ Discord: Join the Chat
- ๐ฎ Sim pilots & devs: Iโd love to hear how youโre using StickUp.