[−][src]Crate buttplug
Buttplug Intimate Sex Toy Control Library
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.
If you don't know why you're here, check out our main website or our github repo for more introductory information.
Requirements
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.
Currently Implemented Capabilities
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.
Examples
Code examples are available in the github repo.
The Buttplug Developer Guide may also be useful, though it does not currently have Rust examples.
Attributes
The following attributes are available
Feature | Other Features Used | Description |
---|---|---|
client | None | Buttplug client implementation (in-process connection only) |
server | None | Buttplug server implementation (in-process connection only) |
serialize_json | None | Serde JSON serializer for Buttplug messages, needed for remote connectors |
client-ws | client ,serialize_json | Websocket client connector, used to connect clients to remote servers |
client-ws-ssl | client ,serialize_json | Websocket client connector with SSL capabilities |
Default attributes are client-ws
and server
.
Plans for the Future
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.
Contributing
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.
Modules
client | Communications API for accessing Buttplug Servers |
core | Protocol message and error definitions. |
device | |
server | Handles client sessions, as well as discovery and communication with hardware. |
test | |
util |
Macros
create_buttplug_protocol | |
create_protocol_creator_impl |