[][src]Crate buttplug

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

FeatureOther Features UsedDescription
clientNoneButtplug client implementation (in-process connection only)
serverNoneButtplug server implementation (in-process connection only)
serialize_jsonNoneSerde JSON serializer for Buttplug messages, needed for remote connectors
client-wsclient,serialize_jsonWebsocket client connector, used to connect clients to remote servers
client-ws-sslclient,serialize_jsonWebsocket 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.

server

Handles client sessions, as well as discovery and communication with hardware.