barbed
[!CAUTION] This project is pretty much experimental and new releases WILL BREAK, VERY OFTEN.
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 APIreqwest-client— native HTTP helpers built onreqwesttokio-eventsub— native EventSub WebSocket client usingtokioandtungstenitetokio-irc— native Twitch IRC client usingtokioseventv,bttv,ffz— re-export the corresponding provider crates from the root crateseventv-reqwest,bttv-reqwest,ffz-reqwest— enable reqwest-backed HTTP clients in those provider crates
Workspace crates:
barbed— core Twitch/OAuth/EventSub/IRC APIsbarbed-7tv— 7TV API coverage used by LUPObarbed-bttv— BetterTTV API coverage used by LUPObarbed-ffz— FrankerFaceZ API coverage used by LUPObarbed-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.
