Buttplug sex toy control library
1# Intiface Engine v4.0.0-beta2 (2025/10/18)
2
3## Bugfixes
4
5- Allow engine to actually exit when stopping REST API
6
7# Intiface Engine v4.0.0-beta1 (2025/10/12)
8
9## Features
10
11- Brought Engine back into the main Buttplug repo
12 - No reason to keep it seperate since it's basically the output of the repo anyways
13- Update to Buttplug v10.0.0-beta1
14 - v4 message spec update
15- Added beginnings of REST API
16
17# Intiface Engine v3.0.8 (2025/04/20)
18
19## Features
20
21- Update to Buttplug v9.0.8
22 - Lots of new device support
23 - Bug fixes for serial ports, device limits
24
25# Intiface Engine v3.0.7 (2024/12/23)
26
27## Features
28
29- Update to Buttplug v9.0.7
30 - Lots of new device support
31 - Lovense devices with changed names now still connect
32
33# Intiface Engine v3.0.6 (2024/12/23)
34
35## Features
36
37- Update to Buttplug v9.0.6
38 - Lovense Gush 2/Osci 3 device support
39
40# Intiface Engine v3.0.5 (2024/12/21)
41
42## Features
43
44- Update to Buttplug v9.0.5
45 - Many devices additions
46
47# Intiface Engine v3.0.4 (2024/10/06)
48
49## Features
50
51- Update to Buttplug v9.0.4
52 - Lovense Solace Pro linear movement support
53 - Lovense Solace (non-pro) fixes
54 - Some device additions
55
56# Intiface Engine v3.0.3 (2024/09/29)
57
58## Features
59
60- Update to Buttplug v9.0.2
61 - Lots of device additions, look at the Buttplug changelog for more info
62
63# Intiface Engine v3.0.2 (2024/09/02)
64
65## Bugfixes
66
67- Update to Buttplug v9.0.1
68 - Fixes bug with messages IDs sometimes not getting set
69
70# Intiface Engine v3.0.1 (2024/09/01)
71
72## Features
73
74- Update to Buttplug v9.0.0
75 - Starting the Message Spec v4 development line
76 - There is now a "allow-unstable-v4-connections" feature that will allow for testing throughout
77 v4 development. Will be removed when Buttplug v10/Message Spec v4 is released.
78 - Lots of device support for like 10 different brands. It's been more than 3 months!
79- Rebuild server backdoor system to just be another Buttplug Server instead of exposing Device
80 Manager
81 - The thing I said I'd never do!
82
83## Bugfixes
84
85- Automatically prepend ws:// to repeater addresses if they don't have it already.
86
87# Intiface Engine v3.0.0 (2024/05/12)
88
89## Breaking Changes
90
91- Device Config File Compatibility
92 - This update moves to Buttplug v8, which changes our config file capabilities and adds extra API
93 calls for config file updates.
94
95## Features
96
97- Update to Buttplug v8.0.0
98 - Rewrite of the device config system
99 - Lots of device support for JoyHub, Svakom, LoveDistance, etc...
100 - Some backward compat bugfixes
101
102# Intiface Engine v2.0.4 (2024/04/20)
103
104## Features
105
106- Update to Buttplug v7.1.16
107 - Lots of device support for JoyHub, Kiiroo, Lioness
108 - Fix Lovense Solace issues
109
110# Intiface Engine v2.0.3 (2024/03/17)
111
112## Features
113
114- Update to Buttplug v7.1.15
115 - Fix panics that can happen on shutdown in lovense dongle
116
117# Intiface Engine v2.0.2 (2024/03/16)
118
119## Features
120
121- Update to Buttplug v7.1.14
122 - Added more device support (see Buttplug CHANGELOG)
123
124# Intiface Engine v2.0.1 (2024/01/27)
125
126## Features
127
128- Update to Buttplug v7.1.13
129 - Added more device support (see Buttplug CHANGELOG)
130
131# Intiface Engine v2.0.0 (2024/01/21)
132
133## Breaking Changes
134
135- Removed sentry/crash reporting
136 - This is now a library AND a CLI. If someone is using the CLI, they're using it in their own
137 setup they can wrap it in whatever crash reporter they want. Moving crash reporting up to Intiface Central.
138- Removed logging for library instances
139 - Intiface was originally built as a CLI and meant to be run only as such. Now that it's a CLI and
140 a library, we need to let applications handle their own logging. The CLI build still has logging features, but library now just exposes a log/tracing interface.
141- Removed Websocket Frontend
142 - This was used when we were letting other programs run the CLI. Now that there's a library mode,
143 we expect applications to just attach directly. This makes things more secure overall, and if users want it back, they can implement their own frontend using the trait.
144- All above changes will mostly be reflected externally in either missing CLI arguments, or updates
145 to the EngineOptions struct.
146- The v2 line may be fairly short, as the engine will once again have a major revision once Buttplug
147 moves to its new spec and therefore new major revision.
148
149## Features
150
151- Update to Buttplug v7.1.12
152 - Massive number of hardware support updates/bugfixes, just go look at the CHANGELOG
153 - Fixes bugs with streaming JSON
154- Moved to tokio-tungstenite
155 - Matched move made by Buttplug
156- Implemented repeater mode (Basic websocket proxy)
157 - Mostly needed for reflecting desktop browser apps to phone control
158
159# Intiface Engine v1.4.10 (2023/11/18)
160
161## Bugfixes
162
163- Update to Buttplug v7.1.11
164 - Fixed btleplug compilation issue on macOS
165
166# Intiface Engine v1.4.9 (2023/11/18)
167
168## Features
169
170- Update to Buttplug v7.1.10
171 - Fixes issues with invalid bluetooth names on Android
172
173# Intiface Engine v1.4.8 (2023/11/16)
174
175## Features
176
177- Update to Buttplug v7.1.9
178 - Added Lovense Solace, OhMiBod Foxy, Chill support
179
180# Intiface Engine v1.4.7 (2023/11/04)
181
182## Features
183
184- Allow logging to use environment variables for setup over command line prefs
185- Update to Buttplug v7.1.8
186 - Add lovense device support
187 - Fix some device support issues
188
189# Intiface Engine v1.4.6 (2023/10/19)
190
191## Features
192
193- Update to Buttplug v7.1.7
194 - Fixes memory leak in mDNS handling
195 - Defaults to device keepalive being on when compiling for iOS
196
197# Intiface Engine v1.4.5 (2023/10/08)
198
199## Features
200
201- Update to Buttplug v7.1.6
202 - Fixes Lovense Dongle support
203 - Added Foreo device support
204
205# Intiface Engine v1.4.4 (2023/10/05)
206
207## Bugfixes
208
209- Make mDNS actually work in all cases (but it's still considered experimental)
210- Fix compilation issues for android
211
212# Intiface Engine v1.4.3 (2023/10/04)
213
214## Features
215
216- Update to Buttplug v7.1.5
217 - Lots of device additions, HID device manager for Joycons
218- Add mDNS broadcast capabilities
219
220# Intiface Engine v1.4.2 (2023/07/16)
221
222## Features
223
224- Update to Buttplug v7.1.2
225 - Device additions for Magic Motion, Lovense Connect bugfix
226
227# Intiface Engine v1.4.1 (2023/07/09)
228
229## Features
230
231- Update to Buttplug v7.1.1
232 - Mostly device additions/updates
233
234# Intiface Engine v1.4.0 (2023/05/21)
235
236## Features
237
238- Update to Buttplug v7.1.0
239 - Mostly device additions/updates
240 - Some fixes for user configs
241- Move ButtplugRemoteServer into Intiface Engine
242 - Gives us more flexibility to change things in development
243- Updates for user device config updates via Buttplug
244
245# Intiface Engine v1.3.0 (2023/02/19)
246
247## Features
248
249- Added Websocket Client argument for running the engine as a websocket client instead of a server
250- Update to Buttplug v7.0.2
251 - Hardware protocols updates for Kizuna/Svakom/Sakuraneko
252
253# Intiface Engine v1.2.2 (2023/01/30)
254
255## Bugfixes
256
257- Fix timing issue on sending EngineStopped message on exit
258
259# Intiface Engine v1.2.1 (2023/01/16)
260
261## Features
262
263- Update to Buttplug v7.0.1
264 - Hardware protocol updates/fixed, see Buttplug CHANGELOG for more info.
265
266# Intiface Engine v1.2.0 (2023/01/01)
267
268## Features
269
270- Update to Buttplug v7.0.0
271 - Major version move because of API breakage.
272 - Mostly bugfixes otherwise.
273 - Removes IPC Pipes, so removed them in Intiface Engine too.
274
275# Intiface Engine v1.1.0 (2022/12/19)
276
277## Features
278
279- Update to Buttplug v6.3.0
280 - Lots of device additions
281 - Major bugfixes for WeVibe/Satisfyer/Magic Motion and Lovense Connect
282
283# Intiface Engine v1.0.5 (2022/11/27)
284
285## Bugfixes
286
287- Update to Buttplug v6.2.2
288 - Fixes issues with platform dependencies and DCMs
289 - Fixes error message in common path in CoreBluetooth
290 - Stops devices when server disconnects
291
292# Intiface Engine v1.0.4 (2022/11/24)
293
294## Features
295
296- Update to Buttplug v6.2.1
297- Add optional tokio_console feature for task debugging
298- Remove crash reporting for now
299 - Needs to be updated, more testing, etc...
300
301# Intiface Engine v1.0.3 (2022/11/05)
302
303## Features
304
305- Implemented BackdoorServer, which allows access to server devices directly, while still allowing a
306 client to access them simultaneously. Can't possibly see how this could go wrong.
307- Added EngineServerCreated Event for IntifaceCentral to know when to bring up the BackdoorServer.
308
309## Bugfixes
310
311- Fixed issue where logging could stay alive through multiple server bringups when run in process.
312
313# Intiface Engine v1.0.2 (2022/10/18)
314
315## Bugfixes
316
317- Vergen should not block building as a library dependency
318
319# Intiface Engine v1.0.1 (2022/10/15)
320
321## Features
322
323- Update to Buttplug v6.1.0
324 - Mostly bugfixes
325 - Now requires v2.x device config files
326
327# Intiface Engine v1.0.0 (2022/10/01)
328
329## Breaking Changes
330
331- Rebuilt command line arguments
332 - Now in kebab case format
333 - ALL DCMs require --use statements, there are no default DCMs anymore
334- Incorporates changes made during the egui betas.
335- The `--stay_open` argument is now assumed. The server will run until either Ctrl-C is pressed or
336 an IPC stop message is received.
337
338## Features
339
340- Intiface Engine is now compiled as both a CLI (for desktop) and a Library (for mobile).
341- Updated to Buttplug v6
342- Moved to semantic versioning, major version denotes CLI argument or breaking IPC protocol change.
343
344# v101 (egui Beta 2) (2021/01/25)
345
346- Add websocket device server port selection
347
348# v100 (egui Beta 1) (2021/01/04)
349
350## Features
351
352- Use JSON over named pipes instead of protobufs over stdio
353- Add sentry crash logging
354- Server version now uses a shorter tag
355- Update to Rust 2021
356
357# v50 (2022/04/26) - Last version of Intiface CLI
358
359## Features
360
361- Update to Buttplug v5.1.9
362 - Add Magic Motion Crystal support
363 - Fix issues with Satisfyer Plugalicious 2 connections
364 - Fix issues with Satisfyer device identification
365
366# v49 (2022/03/05)
367
368## Features
369
370- Update to Buttplug v5.1.8
371 - Added Lelo F1s v2 support, more support for Mannuo/Magic Motion/OhMiBod devices
372 - May fix issues with windows bluetooth on older Win 10 versions
373
374# v48 (2021/01/24)
375
376## Features
377
378- Update to Buttplug v5.1.7
379 - Lovense Calor support, Folove support, more WeVibe/Satisfyer support
380
381# v47 (2022/01/04)
382
383## Bugfixes
384
385- No changes to build, re-release to fix issue with a wrong tag getting pushed.
386
387# v46 (2022/01/01)
388
389## Bugfixes
390
391- Update to Buttplug v5.1.6
392 - Fix issues with serial ports blocking, lovense connect data types, log message levels, etc...
393 - See Buttplug v5.1.6 changelog for more info.
394 (https://github.com/buttplugio/buttplug/blob/master/buttplug/CHANGELOG.md)
395
396# v45 (2021/12/19)
397
398## Bugfixes
399
400- Update to Buttplug v5.1.5
401 - Fix issues with Satisfyer name detection and disconnection
402 - Fix issues with device scanning always saying it's instantly finished
403
404# v44 (2021/12/14)
405
406## Bugfixes
407
408- Update to Buttplug v5.1.4
409 - Shouldn't change anything in here, all the fixes were FFI related, but eh.
410- Try to get crash logs into frontend log output for easier debugging
411- #14: Fix issue with intiface-cli not sending events to desktop after first disconnection
412
413# v43 (2021/12/04)
414
415## Bugfixes
416
417- Update to Buttplug v5.1.2
418 - Fix race condition with bluetooth advertisements causing multiple simultaneous connects to
419 devices
420- Update to vergen 5.2.0
421 - Last version was yanked
422
423# v42 (2021/12/03)
424
425## Bugfixes
426
427- Update to Buttplug v5.1.1
428 - Fix issues with devices w/ advertised services being ignored
429 - Fix issues with lovense dongle on linux
430
431# v41 (2021/12/02)
432
433## Features
434
435- Update to Buttplug v5.1
436 - Bluetooth library updates
437 - Satisfyer/ManNuo/other device support (see Buttplug README)
438 - Lots of other fixes
439- Update to vergen v5, tracing-subscriber v0.3
440
441# v40 (2021/09/14)
442
443## Features
444
445- Update to Buttplug v5.0.1
446 - Better MacOS bluetooth support
447 - Better Linux bluetooth support
448 - Tons of device additions (see Buttplug README)
449 - Adds websocket device interface
450
451# v39 (2021/07/05)
452
453## Features
454
455- Server now throws warnings whenever a client tries to connect when another client is already
456 connected.
457- Update to Buttplug 4.0.4
458 - Added hardware support for TCode devices, Patoo, Vorze Piston SA
459
460## Bugfixes
461
462- Fix cancellation of tasks on shutdown.
463
464# v38 (2021/06/18)
465
466## Bugfixes
467
468- Update to buttplug-rs 4.0.3, which fixes issues with Android phones using the Lovense Connect app.
469
470# v37 (2021/06/11)
471
472## Bugfixes
473
474- Fix timing issue where Process Ended message may not be seen by Intiface Desktop
475- Update to buttplug-rs 4.0.2, fixing issue with Intiface Desktop stalling due to logging issues.
476- Add Info.plist file for macOS Big Sur and later compat
477
478# v36 (2021/06/10)
479
480## Features
481
482- Added opt-in/out arguments for all available device communication managers
483- Added support for Lovense Connect Service
484
485# v35 (2021/04/04)
486
487## Bugfixes
488
489- Update to Buttplug v2.1.9
490 - Reduces error log messages thrown by lovense dongle
491 - Reduces panics in bluetooth handling on windows
492 - Fixes issue with battery checking on lovense devices stalling library on device disconnect
493
494# v34 (2021/03/25)
495
496## Bugfixes
497
498- Update to Buttplug v2.1.8
499 - Possibly fixes issue with bluetooth devices not registering disconnection on windows.
500
501# v33 (2021/03/08)
502
503## Bugfixes
504
505- Update to Buttplug v2.1.7
506 - Fixes legacy message issues with The Handy and Vorze toys
507 - Fixes init issues with some Kiiroo vibrators
508
509# v32 (2021/02/28)
510
511## Bugfixes
512
513- Update to Buttplug v2.1.6
514 - Fixes issues with log message spamming
515 - Update btleplug to 0.7.0, lots of cleanup
516
517# v31 (2021/02/20)
518
519## Bugfixes
520
521- Update to Buttplug v2.1.5
522 - Fixes panic in devices that disconnect during initialize().
523
524# v30 (2021/02/13)
525
526## Features
527
528- Update to Buttplug v2.1.4
529- Added Hardware Support
530 - The Handy
531
532## Bugfixes
533
534- Fixes issues with the LoveAi Dolp and Lovense Serial Dongle
535
536# v29 (2021/02/06)
537
538## Bugfixes
539
540- Update to Buttplug v2.1.3
541 - Fix StopAllDevices so it actually stops all devices again
542 - Allow for setting device intensity to 1.0
543
544# v28 (2021/02/06)
545
546## Features
547
548- Update to Buttplug v2.1.1
549 - Adds Lovense Diamo and Nobra's Silicone Dreams support
550 - Lots of bugfixes and more/better errors being emitted
551
552# v27 (2021/01/24)
553
554## Bugfixes
555
556- Update to Buttplug 2.0.5
557 - Fixes issue with v2 protocol conflicts in DeviceMessageInfo
558
559# v26 (2021/01/24)
560
561## Bugfixes
562
563- Update to Buttplug 2.0.4
564 - Fixes issue with XInput devices being misaddressed and stopping all scanning.
565
566# v25 (2021/01/19)
567
568## Bugfixes
569
570- Update to Buttplug 2.0.2
571 - Fixes issue with scanning status getting stuck on Lovense dongles
572
573# v24 (Yanked) (2021/01/18)
574
575## Features
576
577- Update to Buttplug 2.0.1
578 - Event system and API cleanup
579 - Lovense Ferri Support
580- Backtraces now emitted via logging system when using frontend IPC
581
582# v23 (2021/01/01)
583
584## Bugfixes
585
586- Update to Buttplug 1.0.4
587 - Fixes issues with XInput Gamepads causing intiface-cli-rs crashes on reconnect.
588
589# v22 (2021/01/01)
590
591## Bugfixes
592
593- Update to Buttplug 1.0.3
594 - Fixes issues with BTLE advertisements and adds XInput device rescanning.
595
596# v21 (2020/12/31)
597
598## Bugfixes
599
600- Update to Buttplug 1.0.1
601 - Fixes issue with device scanning races.
602
603# v20 (2020/12/22)
604
605## Bugfixes
606
607- Update to Buttplug 0.11.3
608 - Fixes security issues and a memory leak when scanning is called often.
609
610# v19 (2020/12/11)
611
612## Bugfixes
613
614- Update to Buttplug 0.11.2
615 - Emits Scanningfinished when scanning is finished. Finally.
616
617# v18 (2020/11/27)
618
619## Features
620
621- Update to buttplug-rs 0.11.1
622 - System bugfixes
623 - Mysteryvibe support
624
625# v17 (2020/10/25)
626
627## Features
628
629- Update to buttplug-rs 0.10.1
630 - Lovense Dongle Bugfixes
631 - BLE Toy Connection Bugfixes
632- Fix logging output
633 - Pay attention to log option on command line again
634 - Outputs full tracing JSON to frontend
635
636# v16 (2020/10/17)
637
638## Features
639
640- Update to buttplug-rs 0.10.0
641 - Kiiroo Keon Support
642 - New raw device commands (use --allowraw option for access)
643
644## Bugfixes
645
646- Update to buttplug-rs 0.10.0
647 - Lots of websocket crash fixes
648
649# v15 (2020/10/05)
650
651## Bugfixes
652
653- Update to buttplug-rs 0.9.2 w/ btleplug 0.5.4, fixing an issue with macOS
654 panicing whenever it tries to read from a BLE device.
655
656# v14 (2020/10/05)
657
658## Bugfixes
659
660- Update to buttplug-rs 0.9.1 w/ btleplug 0.5.3, fixing an issue with macOS
661 panicing whenever it tries to write to a BLE device.
662
663# v13 (2020/10/04)
664
665## Features
666
667- Update to buttplug-rs 0.9.0, which now has Battery level reading capabilites
668 for some hardware.
669
670## Bugfixes
671
672- Update to buttplug-rs 0.9.0, which now does not crash when 2 devices are
673 connected and one disconnects.
674
675# v12 (2020/10/02)
676
677## Features
678
679- Update to Buttplug-rs 0.8.4, fixing a bunch of device issues.
680- Default to outputting info level logs if no env log var set. (Should pick this
681 up from command line argument in future version)
682
683## Bugfixes
684
685- Only run for one connection attempt if --stayopen isn't passed in.
686
687# v11 (2020/09/20)
688
689## Bugfixes
690
691- Moves to buttplug-0.8.3, which fixes support for some programs using older
692 APIs (FleshlightLaunchFW12Cmd) for Kiiroo stroking products (Onyx, Fleshlight
693 Launch, etc).
694
695# v10 (2020/09/13)
696
697## Features
698
699- Added log handling from Buttplug library. Still needs protocol/CLI setting,
700 currently outputs everything INFO or higher.
701
702## Bugfixes
703
704- Moves to buttplug-0.8.2, fixing Lovense rotation and adding log output
705 support.
706
707# v9 (2020/09/11)
708
709## Bugfixes
710
711- Moves to buttplug-0.7.3, which loads both RSA and pkcs8 certificates. This
712 allows us to load the certs that come from Intiface Desktop.
713
714# v8 (2020/09/07)
715
716## Bugfixes
717
718- Move to buttplug-rs 0.7.2, which adds more device configurations and fixes
719 websocket listening on all interfaces.
720
721# v7 (2020/09/06)
722
723## Features
724
725- Move to buttplug-rs 0.7.1, which includes status emitting features and way
726 more device protocol support.
727- Allow frontend to trigger process stop
728- Send disconnect to frontend when client disconnects
729- Can now relay connected/disconnected devices to GUIs via PBuf protocol
730
731# v6 (2020/08/06)
732
733## Features
734
735- Move to buttplug-rs 0.6.0, which integrates websockets and server lifetime
736 handling. intiface-cli-rs is now a very thin wrapper around buttplug-rs,
737 handling system bringup and frontend communication and that's about it.
738
739# v5 (2020/05/13)
740
741## Bugfixes
742
743- Move to buttplug-rs 0.3.1, with a couple of unwrap fixes
744
745# v4 (2020/05/10)
746
747## Features
748
749- --stayopen option now actually works, reusing the server between
750 client connections.
751
752# v3 (2020/05/09)
753
754## Features
755
756- Added protobuf basis for hooking CLI into Intiface Desktop
757
758## Bugfixes
759
760- Fixed bug where receiving ping message from async_tungstenite would
761 panic server
762- Update to buttplug 0.2.4, which fixes ServerInfo message ID matching
763
764# v2 (2020/02/15)
765
766## Features
767
768- Move to using rolling versioning, since this is a binary
769- Move to using buttplug 0.2, with full server implementation
770- Add cert generation
771- Add secure websocket capabilities
772- Move to using async-tungstenite
773- Use Buttplug's built in JSONWrapper
774- Add XInput capability on windows
775- Add CI building
776- Add Simple GUI message output for Intiface Desktop
777
778# v1 (aka v0.0.1) (2020/02/15)
779
780## Features
781
782- First version
783- Can bring up insecure websocket, run server, access toys
784- Most options not used yet