1
0
Fork 0
mirror of https://github.com/ananthb/libobsbot.git synced 2026-09-20 16:26:58 +00:00
Cross-platform Rust SDK for OBSBOT cameras
  • Rust 85.6%
  • C 9.1%
  • Nix 3.8%
  • C++ 1.5%
Find a file
Ananth Bhaskararaman 2908d328bd ci: use ananthb cachix cache
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-30 01:47:11 +05:30
.github ci: use ananthb cachix cache 2026-05-30 01:47:11 +05:30
crates core/ffi: microphone-during-sleep + button-mode 2026-05-24 03:02:07 +05:30
doc docs: list every shipped Meet 2 control in the hardware table 2026-05-24 03:03:24 +05:30
include core/ffi: microphone-during-sleep + button-mode 2026-05-24 03:02:07 +05:30
tools/meet2-exercise meet2: decode + wire auto-framing; retry RPC polling 2026-05-23 03:54:58 +05:30
.envrc initial commit: workspace skeleton 2026-05-22 23:06:16 +05:30
.gitignore docs: merge docs/ into doc/ 2026-05-23 02:01:45 +05:30
Cargo.lock core: macos transport scaffold (deps + cfg-gated stubs) 2026-05-24 01:29:23 +05:30
Cargo.toml ci: lint/test/static-analysis suite + test scaffold 2026-05-23 02:02:45 +05:30
cbindgen.toml docs: drop unnecessary jargon from descriptions 2026-05-22 23:10:25 +05:30
CONTRIBUTING.md docs: full em-dash sweep across the tree; drop Layout sections 2026-05-23 03:07:52 +05:30
deny.toml ci: lint/test/static-analysis suite + test scaffold 2026-05-23 02:02:45 +05:30
flake.lock flake: commit lock file 2026-05-23 00:40:05 +05:30
flake.nix nix: drop valgrind from darwin devShell + checks 2026-05-24 02:28:27 +05:30
LICENSE initial commit: workspace skeleton 2026-05-22 23:06:16 +05:30
README.md docs: trim macOS row jargon 2026-05-24 02:29:54 +05:30
rust-toolchain.toml initial commit: workspace skeleton 2026-05-22 23:06:16 +05:30

libobsbot

A cross-platform Rust SDK for OBSBOT cameras. Implements the OBSBOT camera-control wire protocol from observed USB traffic and ships a stable C ABI so the same library can drive PTZ, image controls, white balance, HDR, FOV, face AE/focus, AI auto-framing, and audio controls from any GPL-compatible application.

Status: v0.0.0 - pre-release. The Meet 2 protocol is decoded - including the selector-0x02 RPC CRC - and the synchronous control surface works end-to-end against real hardware. A per-device status poller and a hot-plug watcher feed the same event channel; the C ABI mirrors the Rust surface. Full docs at https://ananthb.github.io/libobsbot/.

Have an OBSBOT camera we don't yet support? The fastest way to add it is a USB packet capture. See the hardware-support matrix and open a new-hardware issue with a .pcapng attached - we'll do the protocol-decode work from there.

Platforms

OS Notes
Linux First-class. Goal: work while the camera is also open in Zoom/OBS/Cheese - route through the uvcvideo driver rather than detaching it.
macOS Supported. Works while other apps (FaceTime, Zoom, OBS, Photo Booth, …) have the camera open.
Windows The camera must be bound to WinUSB via Zadig. Binding WinUSB removes the camera from usbvideo.sys, so it becomes unusable in Zoom/OBS until the driver is restored.

License

GPL-3.0-only. See LICENSE. Note that linking to liblibobsbot from a non-GPL-compatible application is incompatible with this license.