[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"]
[package.metadata.docs.rs]
targets = []
features = ["default", "unstable"]
[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=[]
websockets=["serialize-json", "tokio-tungstenite", "rustls"]
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"]
tokio-runtime=[]
wasm-bindgen-runtime=[]
wasm = ["server", "wasm-bindgen-runtime", "serialize-json", "uuid/js"]
dummy-runtime=[]
unstable=[]
[dependencies]
buttplug_derive = "0.8.0"
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 }
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 }
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 }
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 }
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"
optional = true
features = [
"Navigator",
"Bluetooth",
"BluetoothDevice",
"BluetoothLeScanFilterInit",
"BluetoothRemoteGattCharacteristic",
"BluetoothRemoteGattServer",
"BluetoothRemoteGattService",
"BinaryType",
"Blob",
"console",
"ErrorEvent",
"Event",
"FileReader",
"MessageEvent",
"ProgressEvent",
"RequestDeviceOptions",
"WebSocket",
"Window"
]