Skip to main content

discord_stream_rs/
lib.rs

1//! # discord-stream-rs
2//!
3//! A Rust library for streaming audio/video to Discord voice channels,
4//! ported from [`@dank074/discord-video-stream`](https://github.com/dank074/discord-video-stream).
5//!
6//! ## Implemented so far
7//! - Voice gateway OpCodes (JSON + binary)          — `VoiceOpCodes.ts`
8//! - Voice gateway message types (serde)             — `VoiceMessageTypes.ts`
9//! - DAVE / E2EE session                             — `@snazzah/davey`
10//! - `VoiceConnection` state machine + DAVE handshake — `BaseMediaConnection.ts`
11//! - `StreamConnection` (Go Live)                    — `StreamConnection.ts`
12//! - Gateway events + opcodes                        — `GatewayEvents.ts` / `GatewayOpCodes.ts`
13//! - `Streamer` controller                           — `Streamer.ts`
14//! - Stream key helpers + codec utils                — `utils.ts`
15
16pub mod dave;
17pub mod gateway;
18#[cfg(feature = "media")]
19pub mod media;
20pub mod processing;
21pub mod utils;
22pub mod voice;
23
24pub use dave::{DaveError, DaveHandler};
25pub use gateway::{GatewayEvent, GatewayOpCode, GatewayPayload, Streamer, StreamerError};
26pub use processing::{rewrite_sps_vui, split_nalu, H264Helpers, H264NalUnitType, H265Helpers, H265NalUnitType};
27pub use utils::{
28    generate_stream_key, normalize_video_codec, parse_stream_key, StreamKey, StreamType,
29    VideoCodec,
30};
31pub use voice::{ConnectionError, StreamConnection, VoiceConnection, VoiceEvent, WebRtcParams, WebRtcError, WebRtcWrapper};
32