Welcome to the Buttplug Intimate Sex Toy Control Library.
If you're here, we're assuming you know why you're here and will dispense with the "this is what this library is" stuff.
buttplug-rs uses async/await heavily, and requires a minimum of Rust 1.39.
While we use async-std internally, buttplug-rs should work with any runtime.
The library currently contains a complete implementation of the Buttplug Client, which allows connecting to Buttplug Servers (currently written in C# and JS), then enumerating and controlling devices after successful connection. There are also connectors included for connecting to servers via Websockets.
Code examples are available in the github repo.
The Buttplug Developer Guide may also be useful, though it does not currently have Rust examples.
The following attributes are available
|Feature||Other Features Used||Description|
|None||Buttplug client implementation (in-process connection only)|
|None||Buttplug server implementation (in-process connection only)|
|None||Serde JSON serializer for Buttplug messages, needed for remote connectors|
|Websocket client connector, used to connect clients to remote servers|
|Websocket client connector with SSL capabilities|
Default attributes are
The next 2 goals are:
- Creating an FFI layer so that we can build other language libraries on top of this implementation.
- Writing the server portion in Rust.
These will be happening simultaneously after the v0.0.2 release.
Right now, we mostly need code/API style reviews and feedback. We don't really have any good bite-sized chunks to apportion out on the implementation yet, but one we do, those will be marked "Help Wanted" in our github issues.
Communications API for accessing Buttplug Servers
Protocol message and error definitions.
Handles client sessions, as well as discovery and communication with hardware.