1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
// Buttplug Rust Source Code File - See https://buttplug.io for more info. // // Copyright 2016-2019 Nonpolynomial Labs LLC. All rights reserved. // // Licensed under the BSD 3-Clause license. See LICENSE file in the project root // for full license information. #![crate_type = "lib"] #![crate_name = "buttplug"] //! # Buttplug Intimate Sex Toy Control Library //! //! [![Patreon donate button](https://img.shields.io/badge/patreon-donate-yellow.svg)](https://www.patreon.com/qdot) //! [![Github donate button](https://img.shields.io/badge/github-donate-ff69b4.svg)](https://www.github.com/sponsors/qdot) //! [![Discourse Forum](https://img.shields.io/badge/discourse-forum-blue.svg)](https://metafetish.club) //! [![Discord](https://img.shields.io/discord/353303527587708932.svg?logo=discord)](https://discord.buttplug.io) //! [![Twitter](https://img.shields.io/twitter/follow/buttplugio.svg?style=social&logo=twitter)](https://twitter.com/buttplugio) //! //! [![Crates.io Version](https://img.shields.io/crates/v/buttplug)](https://crates.io/crates/buttplug) //! [![Crates.io Downloads](https://img.shields.io/crates/d/buttplug)](https://crates.io/crates/buttplug) //! [![Crates.io License](https://img.shields.io/crates/l/buttplug)](https://crates.io/crates/buttplug) //! //! 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](https://buttplug.io) or [our github //! repo](https://github.com/buttplugio/buttplug-rs) for more introductory //! information. //! //! ## Requirements //! //! buttplug-rs uses async/await heavily, and requires a minimum of Rust 1.39. //! //! While we use [async-std](https://async.rs/) 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#](https://github.com/buttplugio/buttplug-csharp) and //! [JS](https://github.com/buttplugio/buttplug-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](https://github.com/buttplugio/buttplug-rs/tree/master/buttplug/examples). //! //! The [Buttplug Developer //! Guide](https://buttplug-developer-guide.docs.buttplug.io) 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](https://github.com/buttplugio/buttplug-rs/issues). #[macro_use] extern crate buttplug_derive; #[macro_use] extern crate log; #[cfg(feature = "client")] pub mod client; pub mod core; #[cfg(feature = "server")] pub mod server;