Files
sexy.pivoine.art/packages/buttplug/Cargo.toml
Sebastian Krüger 6ea4ed1933
All checks were successful
Build and Push Docker Image to Gitea / build-and-push (push) Successful in 7m30s
feat: upgrade buttplug package to protocol v4 and WASM v10
Upgrade the buttplug TypeScript client from class-based v3 protocol to
interface-based v4 protocol, and the Rust/WASM server from the monolithic
buttplug 9.0.9 crate to the split buttplug_core/buttplug_server/
buttplug_server_device_config 10.0.0 crates.

TypeScript changes:
- Messages are now plain interfaces with msgId()/setMsgId() helpers
- ActuatorType → OutputType, SensorType → InputType
- ScalarCmd/RotateCmd/LinearCmd → OutputCmd, SensorReadCmd → InputCmd
- Client.ts → ButtplugClient.ts, new DeviceCommand/DeviceFeature files
- Devices getter returns Map instead of array
- Removed class-transformer/reflect-metadata dependencies

Rust/WASM changes:
- Split imports across buttplug_core, buttplug_server, buttplug_server_device_config
- Removed ButtplugServerDowngradeWrapper (use ButtplugServer directly)
- Replaced ButtplugFuture/ButtplugFutureStateShared with tokio::sync::oneshot
- Updated Hardware::new for new 6-arg signature
- Uses git fork (valknarthing/buttplug) to fix missing wasm deps in buttplug_core

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 14:46:47 +01:00

64 lines
2.0 KiB
TOML

[package]
name = "buttplug_wasm"
version = "10.0.0"
authors = ["Nonpolynomial Labs, LLC <kyle@nonpolynomial.com>"]
description = "WASM Interop for the 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"
[lib]
crate-type = ["cdylib", "rlib"]
name = "buttplug_wasm"
path = "src/lib.rs"
[dependencies]
buttplug_core = { git = "https://github.com/valknarthing/buttplug.git", default-features = false, features = ["wasm"] }
buttplug_server = { git = "https://github.com/valknarthing/buttplug.git", default-features = false, features = ["wasm"] }
buttplug_server_device_config = { git = "https://github.com/valknarthing/buttplug.git" }
js-sys = "0.3.80"
tracing-wasm = "0.2.1"
log-panics = { version = "2.1.0", features = ["with-backtrace"] }
console_error_panic_hook = "0.1.7"
wasmtimer = "0.4.3"
wasm-bindgen = { version = "0.2.103", features = ["serde-serialize"] }
tokio = { version = "1.47.1", features = ["sync", "macros", "io-util"] }
tokio-stream = "0.1.17"
tracing = "0.1.41"
tracing-futures = "0.2.5"
tracing-subscriber = { version = "0.3.20", features = ["json"] }
futures = "0.3.31"
futures-util = "0.3.31"
async-trait = "0.1.89"
wasm-bindgen-futures = "0.4.53"
getrandom = { version = "0.3", features = ["wasm_js"] }
parking_lot = { version = "0.11.1", features = ["wasm-bindgen"]}
[dependencies.web-sys]
version = "0.3.80"
# path = "../../wasm-bindgen/crates/web-sys"
#git = "https://github.com/rustwasm/wasm-bindgen"
features = [
"Navigator",
"Bluetooth",
"BluetoothDevice",
"BluetoothLeScanFilterInit",
"BluetoothRemoteGattCharacteristic",
"BluetoothRemoteGattServer",
"BluetoothRemoteGattService",
"BinaryType",
"Blob",
"console",
"ErrorEvent",
"Event",
"FileReader",
"MessageEvent",
"ProgressEvent",
"RequestDeviceOptions",
"WebSocket",
"Window"
]