buttplug 0.1.0

Buttplug Intimate Hardware Control Library

Buttplug Intimate Sex Toy Control Library

Patreon donate button Github donate button Discourse Forum Discord Twitter

Crates.io Version Crates.io Downloads Crates.io License

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.