buttplug 7.1.14

Buttplug Intimate Hardware Control Library
Documentation
[package]

name = "buttplug"

version = "7.1.14"

authors = ["Nonpolynomial Labs, LLC <kyle@nonpolynomial.com>"]

description = "Buttplug Intimate Hardware Control Library"

license = "BSD-3-Clause"

homepage = "http://buttplug.io"

repository = "https://github.com/buttplugio/buttplug.git"

readme = "./README.md"

keywords = ["usb", "serial", "hardware", "bluetooth", "teledildonics"]

edition = "2021"

exclude = ["examples/**"]



[lib]

name = "buttplug"

path = "src/lib.rs"

test = true

doctest = true

doc = true

crate-type = ["cdylib", "rlib"]



# Only build docs on one platform (linux)

[package.metadata.docs.rs]

targets = []

# Features to pass to Cargo (default: [])

features = ["default", "unstable"]



[features]

# Basic features

default=["tokio-runtime", "jsonschema/resolve-file", "client", "server", "serialize-json", "websockets", "btleplug-manager", "xinput-manager", "serial-manager", "hid-manager", "lovense-dongle-manager", "lovense-connect-service-manager", "websocket-server-manager"]

client=[]

server=[]

serialize-json=[]

# Connectors

websockets=["serialize-json", "tokio-tungstenite", "rustls"]

# Device Communication Managers

xinput-manager=["server"]

btleplug-manager=["server", "btleplug"]

serial-manager=["server", "serialport"]

hid-manager=["server", "hidapi"]

lovense-dongle-manager=["server", "serialport", "hidapi"]

lovense-connect-service-manager=["server","reqwest"]

websocket-server-manager=["server", "websockets"]

# Runtime managers

tokio-runtime=[]

wasm-bindgen-runtime=[]

wasm = ["server", "wasm-bindgen-runtime", "serialize-json", "uuid/js"]

dummy-runtime=[]

# Compiler config

unstable=[]



[dependencies]

buttplug_derive = "0.8.0"

# buttplug_derive = { path = "../buttplug_derive" }

futures = "0.3.30"

futures-util = "0.3.30"

async-trait = "0.1.77"

serde = { version = "1.0.196", features = ["derive"] }

serde_json = "1.0.112"

serde_repr = "0.1.18"

uuid = { version = "1.7.0", features = ["serde"] }

url = "2.5.0"

btleplug = { version = "0.11.5", optional = true }

# btleplug = { path = "../../btleplug", optional = true}

# btleplug = { git = 'https://github.com/deviceplug/btleplug', branch = 'master', optional = true }

strum_macros = "0.25.3"

strum = "0.25.0"

once_cell = "1.19.0"

paste = "1.0.14"

lazy_static = "1.4.0"

byteorder = "1.5.0"

thiserror = "1.0.56"

cfg-if = "1.0.0"

tracing = "0.1.40"

tracing-futures = "0.2.5"

tracing-subscriber = { version = "0.3.18", features = ["json"] }

dashmap = "5.5.3"

displaydoc = "0.2.4"

tokio = { version = "1.35.1", features = ["sync", "macros", "io-util"] }

async-stream = "0.3.5"

prost = "0.12.3"

tokio-util = "0.7.10"

reqwest = { version = "0.11.23", default-features = false, optional = true, features = ["rustls-tls"] }

serde-aux = "4.4.0"

getset = "0.1.2"

os_info = "3.7.0"

jsonschema = { version = "0.17.1", default-features = false }

derivative = "2.2.0"

tokio-stream = "0.1.14"

instant = "0.1.12"

regex = "1.10.3"

tokio-tungstenite = { version = "0.21.0", features = ["rustls-tls-webpki-roots"], optional = true }

rustls = { version = "0.22.2", optional = true }

aes = { version = "0.8.3" }

ecb = { version = "0.1.2", features = ["std"] }

rand = { version = "0.8.5" }

sha2 = { version = "0.10.8", features = ["std"] }



[dev-dependencies]

serde_yaml = "0.9.30"

test-case = "3.3.1"

tokio = { version = "1.35.1", features = ["io-std", "rt"] }

tracing-log = { version = "0.2.0" }



[build-dependencies]

prost-build = "0.12.3"



[target.'cfg(target_os = "windows")'.dependencies]

rusty-xinput = "1.3.0"

windows = { version = "0.52.0", features = ["Devices_Bluetooth", "Foundation"] }

serialport = { version = "4.3.0", optional = true }

# Linux hidraw is needed here in order to work with the lovense dongle. libusb breaks it on linux.

# Other platforms are not affected by the feature changes.

hidapi = { version = "2.5.0", default-features = false, features = ["linux-static-hidraw", "illumos-static-libusb"], optional = true }



[target.'cfg(target_os = "linux")'.dependencies]

serialport = { version = "4.3.0", optional = true }

# Linux hidraw is needed here in order to work with the lovense dongle. libusb breaks it on linux.

# Other platforms are not affected by the feature changes.

hidapi = { version = "2.5.0", default-features = false, features = ["linux-static-hidraw", "illumos-static-libusb"], optional = true }



[target.'cfg(target_os = "macos")'.dependencies]

serialport = { version = "4.3.0", optional = true }

# Linux hidraw is needed here in order to work with the lovense dongle. libusb breaks it on linux.

# Other platforms are not affected by the feature changes.

hidapi = { version = "2.5.0", default-features = false, features = ["linux-static-hidraw", "illumos-static-libusb"], optional = true }



[target.wasm32-unknown-unknown.dependencies]

wasm-bindgen = { version = "0.2.90", features = ["serde-serialize"] }

wasm-bindgen-futures = { version = "0.4.40" }

wasmtimer = { version = "0.2.0" }



[dependencies.web-sys]

version = "0.3.67"

# path = "../../wasm-bindgen/crates/web-sys"

#git = "https://github.com/rustwasm/wasm-bindgen"

optional = true

features = [

  "Navigator",

  "Bluetooth",

  "BluetoothDevice",

  "BluetoothLeScanFilterInit",

  "BluetoothRemoteGattCharacteristic",

  "BluetoothRemoteGattServer",

  "BluetoothRemoteGattService",

  "BinaryType",

  "Blob",

  "console",

  "ErrorEvent",

  "Event",

  "FileReader",

  "MessageEvent",

  "ProgressEvent",

  "RequestDeviceOptions",

  "WebSocket",

  "Window"

]