100 个版本 (稳定版)

8.0.0 2024年5月13日
7.1.16 2024年4月20日
7.1.15 2024年3月17日
7.1.11 2023年11月19日
0.0.1 2019年4月12日

#21硬件支持

Download history 43/week @ 2024-04-29 15/week @ 2024-05-06 257/week @ 2024-05-13 231/week @ 2024-05-20 42/week @ 2024-05-27 88/week @ 2024-06-03 61/week @ 2024-06-10 38/week @ 2024-06-17 40/week @ 2024-06-24 20/week @ 2024-07-01 18/week @ 2024-07-08 36/week @ 2024-07-15 60/week @ 2024-07-22 107/week @ 2024-07-29 46/week @ 2024-08-05 35/week @ 2024-08-12

每月252 次下载
7 crates 中使用

BSD-3-Clause

1MB
25K SLoC

Buttplug Intiface 设备控制库

Patreon donate button Github donate button Discourse Forums Discord Twitter

Crates.io Version Crates.io Downloads Crates.io License

简介

Buttplug 是一个将硬件连接到界面的框架,其中硬件通常指性玩具,但事实上可以是任何东西。它基本上是一个用户空间的HID管理器,用于可能不是HID的东西。

更具体地说,可以将Buttplug想象成类似于 osculatorVRPN 的东西,但针对性玩具。我们不是与Wiimotes和控制表面接口,而是与振动棒、电刺激设备、自慰器以及其他可以与计算机通信的硬件接口。

Buttplug的核心工作类似于一个路由器。它是一个基于Rust的应用程序,连接到注册和与不同硬件通信的库。客户端可以通过WebSockets或网络端口连接,以声明和交互硬件。

Buttplug-rs是Buttplug的完整实现,实现了系统的客户端和服务器部分。其他语言(如C#和JS)的实现建立在Rust库之上。有关更多信息,请参阅buttplug-rs-ffi仓库。

硬件支持

Buttplug-rs目前可以通过以下方式控制玩具:

  • 蓝牙LE (桌面和Android/iOS)
  • 串行端口 (桌面)
  • USB HID (桌面)
  • 通过Lovense Dongle控制Lovense设备 (HID和串行Dongle,桌面)
  • Lovense Connect 应用 (桌面和Android/iOS)
  • WebSockets (用于模拟和DIY设备,桌面和Android/iOS)
  • XInput游戏手柄 (仅限Windows)

请参阅IOSTIndex获取支持的硬件完整列表(筛选“Buttplug Rust”)。

文档和示例

要了解如何使用Buttplug库,请查看Buttplug开发者指南。本指南中包含示例,对于Rust,可以在文档仓库的示例目录中找到

编译

在Windows和macOS上,运行cargo build应该足以构建项目。所有依赖项都已包含在内。

在Linux上,构建默认功能将需要以下软件包

  • libudev-dev(用于串行端口/HID支持)
  • libusb-1.0-0-dev(用于串行端口/HID支持)

软件包名称按照Debian的要求列出,其他发行版可能会有所不同。移除lovense-dongle-managerserial-manager功能应该可以停止这些软件包的依赖。

使用方法

要在Rust应用程序或库中使用Buttplug,请查看crates.io上的buttplug软件包

以下软件包功能可用

功能 其他使用功能 描述
client Buttplug客户端实现(仅进程内连接)
server Buttplug服务器实现(仅进程内连接)
serialize-json 用于Buttplug消息的Serde JSON序列化程序,需要远程连接器
websockets tokio-runtime Websocket连接器,用于连接远程客户端(Clear/SSL)/服务器(仅Clear)
btleplug-manager server Windows >=10, macOS, Linux, iOS, Android上的蓝牙硬件支持
lovense-dongle-manager server Windows >=7, macOS, Linux上的Lovense USB Dongle支持
serial-manager server Windows >=7, macOS, Linux上的串行端口硬件支持
xinput-manager server Windows >=7上的XInput游戏手柄支持
lovense-connect-service-manager server Lovense Connect应用程序支持(所有平台)
websocket-server-manager websockets 支持通过Websocket连接设备(所有平台)
dummy-runtime 在任何spawn时引发恐慌的运行时。仅用于测试。
tokio-runtime 使用tokio进行futures
wasm-bindgen-runtime 使用wasm-bindgen执行器作为运行时(仅WASM)

默认功能足以构建完整的桌面系统

  • tokio-runtime
  • client
  • server
  • serialize-json
  • websocket
  • websocket-server-manager
  • btleplug-manager(在WASM上作为noop构建)
  • serial-manager(在iOS,Android上作为noop构建)
  • lovense-dongle-manager(在iOS,Android上作为noop构建)
  • xinput-manager(仅在Windows上相关,但在所有其他平台上作为noop构建)。

贡献

如果您有问题或功能请求,请随时提交问题

目前我们不需要代码贡献或拉取请求,并且不会接受没有匹配问题的拉取请求,其中之前已讨论过该问题。应在通过问题与qdot(或通过DiscordTwitter DMs保持匿名和避免在仓库记录信息的情况下)交谈并获准根据问题开发代码后提交拉取请求。任何随机或非问题拉取请求很可能会被关闭而不合并。

如果您想以非技术的方式做出贡献,我们需要资金来支持最新和最优秀的硬件。我们有多种捐赠方式!

许可协议

Buttplug 使用 BSD 3-Clause 许可。


Copyright (c) 2016-2022, Nonpolynomial, LLC
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this
  list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright notice,
  this list of conditions and the following disclaimer in the documentation
  and/or other materials provided with the distribution.

* Neither the name of buttplug nor the names of its
  contributors may be used to endorse or promote products derived from
  this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

依赖项

~17–66MB
~1M SLoC