Songbird is an async, cross-library compatible voice system for Discord, written in Rust. The library offers:
"gateway"
and "[serenity/twilight]"
plus "[rustls/native]"
features. You can even run
driverless, to help manage your lavalink sessions."driver"
feature. If you can create
a ConnectionInfo
using any other gateway, or language for your bot, then you
can run the songbird voice driver."receive"
feature."simd-json"
feature.Songbird’s gateway functionality requires you to specify the GUILD_VOICE_STATES
intent.
Full examples showing various types of functionality and integrations can be found in this crate’s examples directory.
Songbird supports all codecs and formats provided by Symphonia (pure-Rust), with Opus support provided by audiopus (an FFI wrapper for libopus).
By default, Songbird will not request any codecs from Symphonia. To change this, in your own project you will need to depend on Symphonia as well.
# Including songbird alone gives you support for Opus via the DCA file format.
[dependencies.songbird]
version = "0.5"
features = ["builtin-queue"]
# To get additional codecs, you *must* add Symphonia yourself.
# This includes the default formats (MKV/WebM, Ogg, Wave) and codecs (FLAC, PCM, Vorbis)...
[dependencies.symphonia]
version = "0.5"
features = ["aac", "mp3", "isomp4", "alac"] # ...as well as any extras you need!
Songbird’s logo is based upon the copyright-free image “Black-Capped Chickadee” by George Gorgas White.
pub use crate::driver::Driver;
pub use crate::events::CoreEvent;
pub use crate::events::Event;
pub use crate::events::EventContext;
pub use crate::events::EventHandler;
pub use crate::events::TrackEvent;
pub use discortp as packet;
pub use serenity_voice_model as model;
pub use crate::serenity::*;
"serenity"
feature.Call
s currently stored in the manager instance.Call
s.