barbed 0.0.4

Twitch Helix, EventSub, OAuth, IRC, and provider helpers
Documentation

barbed

github crates.io docs.rs CI

[!CAUTION] This project is pretty much experimental and new releases WILL BREAK, VERY OFTEN.

photo of barbed wires

barbed is a small Rust workspace for Twitch and Twitch-adjacent integrations.

The root barbed crate currently includes:

  • OAuth (authorize URL, device code flow, token refresh, signed state verification)
  • Helix request builders and response parsers
  • EventSub WebSocket decoding, chat subscription helpers, and a native async stream client
  • Checked-in Twitch surface catalogs plus generated low-level Helix/EventSub registries
  • Twitch IRC parsing plus an optional native async IRC client
  • Provider-neutral emote/domain types
  • HMAC signing helpers
  • Trait-based auth/session abstractions with in-memory reference implementations

Optional feature flags add integrations for specific runtimes and providers:

  • cloudflare-worker — send prepared requests via the Cloudflare Workers Fetch API
  • reqwest-client — native HTTP helpers built on reqwest
  • tokio-eventsub — native EventSub WebSocket client using tokio and tungstenite
  • tokio-irc — native Twitch IRC client using tokio
  • seventv, bttv, ffz — re-export the corresponding provider crates from the root crate
  • seventv-reqwest, bttv-reqwest, ffz-reqwest — enable reqwest-backed HTTP clients in those provider crates

Workspace crates:

  • barbed — core Twitch/OAuth/EventSub/IRC APIs
  • barbed-7tv — 7TV API coverage used by LUPO
  • barbed-bttv — BetterTTV API coverage used by LUPO
  • barbed-ffz — FrankerFaceZ API coverage used by LUPO
  • barbed-core — internal shared domain types used by the workspace

Generated Twitch surface data lives in twitch_catalog and is refreshed by tools/twitch_surface.py.

[!NOTE] Disclaimer: this crate is heavily vibecoded, if you don't like it, don't use it.