[package]
name = "buttplug"
version = "7.1.6"
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", "async-tungstenite", "tokio-native-tls"]
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=["async-tungstenite/tokio-runtime", "async-tungstenite/tokio-native-tls"]
wasm-bindgen-runtime=["wasm-bindgen", "wasm-bindgen-futures"]
wasm = ["server", "wasm-bindgen-runtime", "serialize-json", "wasm-bindgen", "uuid/wasm-bindgen", "wasmtimer"]
dummy-runtime=[]
unstable=[]
[dependencies]
buttplug_derive = "0.8.0"
futures = "0.3.28"
futures-util = "0.3.28"
async-trait = "0.1.73"
serde = { version = "1.0.188", features = ["derive"] }
serde_json = "1.0.107"
serde_repr = "0.1.16"
uuid = { version = "1.4.1", features = ["serde"] }
url = "2.4.1"
btleplug = { version = "0.11.1", optional = true }
strum_macros = "0.25.2"
strum = "0.25.0"
once_cell = "1.18.0"
paste = "1.0.14"
lazy_static = "1.4.0"
byteorder = "1.4.3"
thiserror = "1.0.48"
async-tungstenite = { version = "0.23.0", optional = true }
tokio-native-tls = { version = "0.3.1", optional = true }
wasm-bindgen-futures = { version = "0.4.37", optional = true }
cfg-if = "1.0.0"
tracing = "0.1.37"
tracing-futures = "0.2.5"
tracing-subscriber = { version = "0.3.17", features = ["json"] }
dashmap = "5.5.3"
displaydoc = "0.2.4"
wasm-bindgen = { version = "0.2.87", features = ["serde-serialize"], optional = true }
tokio = { version = "1.32.0", features = ["sync", "macros", "io-util"] }
async-stream = "0.3.5"
prost = "0.12.1"
tokio-util = "0.7.8"
reqwest = { version = "0.11.20", default-features = false, optional = true, features = ["rustls-tls"] }
serde-aux = "4.2.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"
wasmtimer = { version = "0.2.0", optional = true }
[dev-dependencies]
serde_yaml = "0.9.25"
test-case = "3.1.0"
tokio = { version = "1.32.0", features = ["io-std", "rt"] }
tracing-log = { version = "0.1.3", features = ["env_logger"] }
[build-dependencies]
prost-build = "0.12.1"
[target.'cfg(target_os = "windows")'.dependencies]
rusty-xinput = "1.2.0"
windows = { version = "0.51.1", features = ["Devices_Bluetooth", "Foundation"] }
serialport = { version = "4.2.2", optional = true }
hidapi = { version = "2.4.1", default-features = false, features = ["linux-static-hidraw", "illumos-static-libusb"], optional = true }
[target.'cfg(target_os = "linux")'.dependencies]
serialport = { version = "4.2.2", optional = true }
hidapi = { version = "2.4.1", default-features = false, features = ["linux-static-hidraw", "illumos-static-libusb"], optional = true }
[target.'cfg(target_os = "macos")'.dependencies]
serialport = { version = "4.2.2", optional = true }
hidapi = { version = "2.4.1", default-features = false, features = ["linux-static-hidraw", "illumos-static-libusb"], optional = true }
[dependencies.web-sys]
version = "0.3.64"
optional = true
features = [
"Navigator",
"Bluetooth",
"BluetoothDevice",
"BluetoothLeScanFilterInit",
"BluetoothRemoteGattCharacteristic",
"BluetoothRemoteGattServer",
"BluetoothRemoteGattService",
"BinaryType",
"Blob",
"console",
"ErrorEvent",
"Event",
"FileReader",
"MessageEvent",
"ProgressEvent",
"RequestDeviceOptions",
"WebSocket",
"Window"
]