Rustalink is a high-performance, standalone Discord audio sending node written in Rust.
Designed for efficiency, reliability, and modern features.
- π High Performance: Built with Rust for minimal overhead and maximum throughput.
- π΅ Extensive Source Support: Native support for 15+ audio platforms.
- π Smart Mirroring: Automatically find audio for metadata-only sources (Spotify, Apple Music, etc.).
- πΊ Advanced YouTube Support: Toggle between multiple clients (WEB, ANDROID, IOS, TV) to bypass restrictions.
- π³ Docker Ready: One-command deployment with pre-configured environments.
- π Highly Configurable: Fine-tune every aspect of the server via
config.toml.
Rustalink supports direct playback and Mirroring. Mirroring allows playback from metadata-only services by automatically finding the best audio match from your configured mirror providers.
| Source | Type | Search Prefix | Features |
|---|---|---|---|
| YouTube | Direct | ytsearch:, ytmsearch: |
ytrec:, Lyrics |
| SoundCloud | Direct | scsearch: |
- |
| Spotify | Mirror | spsearch: |
sprec: |
| Apple Music | Mirror | amsearch: |
- |
| Deezer | Hybrid | dzsearch:, dzisrc: |
dzrec:, Lyrics |
| Tidal | Mirror | tdsearch: |
tdrec: |
| Qobuz | Hybrid | qbsearch:, qbisrc: |
qbrec: |
| Bandcamp | Direct | bcsearch: |
- |
| MixCloud | Direct | mcsearch: |
- |
| JioSaavn | Hybrid | jssearch: |
jsrec: |
| Gaana | Hybrid | gnsearch: |
- |
| Yandex Music | Hybrid | ymsearch: |
ymrec:, Lyrics |
| Audiomack | Hybrid | amksearch: |
- |
| Anghami | Mirror | agsearch: |
- |
| Shazam | Mirror | shsearch: |
- |
| Pandora | Mirror | pdsearch: |
pdrec: |
| Audius | Direct | ausearch:, audsearch: |
- |
| HTTP / Local | Direct | - | - |
Tip
Hybrid sources support direct playback if credentials are provided. Otherwise, they seamlessly fall back to mirroring.
Bypass restrictions by switching between specialized clients:
| Client Alias | Search | Resolve | Playback |
|---|---|---|---|
WEB |
β | β | β |
MWEB |
β | β | β |
REMIX |
β | β | β |
ANDROID |
β | β | β |
IOS |
β | β | β |
TV |
β | β | β |
TVHTML5 |
β | β | β |
TV_CAST |
β | β | β |
TV_EMBEDDED |
β | β | β |
MUSIC_ANDROID |
β | β | β |
ANDROID_VR |
β | β | β |
WEB_EMBEDDED |
β | β | β |
WEB_PARENT_TOOLS |
β | β | β |
Docker is the recommended way to run Rustalink.
# 1. Pull the image
docker pull ghcr.io/bongodevs/rustalink:latest
# 2. Setup config
mkdir rustalink && cd rustalink
docker run --rm ghcr.io/bongodevs/rustalink:latest cat config.default.toml > config.toml
# 3. Running with Docker Compose
# Create a docker-compose.yml file:
services:
rustalink:
image: ghcr.io/bongodevs/rustalink:latest
ports: ["2333:2333"]
volumes: ["./config.toml:/app/config.toml", "./logs:/app/logs"]
restart: unless-stoppedIf you'd rather build the Docker image yourself from local source instead of pulling a pre-built image:
git clone https://github.com/bongodevs/rustalink.git
cd rustalink
# Build image from source (compiles Rust inside Docker β no local Rust toolchain needed)
docker build --target local -t rustalink:dev .
# Run it
docker run -p 2333:2333 -v ./config.toml:/app/config.toml rustalink:devNote
The --target local flag triggers a full in-container Rust build. This takes longer than pulling the pre-built image but requires no local Rust installation.
For native installation (Windows, Linux, macOS), see the Releases page.
- Rust: Latest stable version is required.
sudo apt-get update
sudo apt-get install -y build-essential cmake pkg-config libssl-dev clangbrew install cmake pkg-config
# Ensure Xcode Command Line Tools are installed:
xcode-select --install- Install Visual Studio Build Tools (select "Desktop development with C++").
- Install CMake.
git clone https://github.com/bongodevs/rustalink.git
cd rustalink
cargo build --releaseThe compiled binary will be at target/release/rustalink.
Rustalink is published under the Apache License 2.0.
See the LICENSE file for more details.
