lavalink-rs
An API Wrapper for lavalink
. Compatible with all tokio 1.x
based discord crates or asyncio
based discord python libraries.
If you have questions, you can get support in the serenity, lavalink or hikari
discord servers, or by opening an issue in the gitlab repository.
Documentation for the library can be found here for rust or here for python.
To-Do
0.15
Future
Done
Links to download stuff you will need
To install Lavalink, you can follow their getting started guide.
How to use
This is how you can install the library to be used.
Rust
You can install the latest version from crates.io:
lavalink-rs = "0.14"
[dependencies.lavalink-rs]
version = "0.14"
Or the development release:
lavalink-rs = { git = "https://gitlab.com/vicky5124/lavalink-rs/", branch = "main"}
[dependencies.lavalink-rs]
git = "https://gitlab.com/vicky5124/lavalink-rs/"
branch = "main"
If you wish to use a development version of songbird (or serenity, or twilight-model), add the following to the Cargo.toml:
[patch.crates-io.songbird]
git = "https://github.com/serenity-rs/songbird"
branch = "next"
[dependencies.songbird]
git = "https://github.com/serenity-rs/songbird"
branch = "next"
Python
You can install the latest version from pypi by using python3 -m pip install lavalink_rs
.
OS | Arch | Python Versions | Supported? |
---|
Windows | x86 | 3.8-3.13 | ✅ |
Windows | x64 | 3.8-3.13 | ✅ |
Windows | aarch64 | - | ❌ |
Mac OS | x86_64 | 3.8-3.13 | ✅ |
Mac OS | aarch64 | 3.8-3.13 | ✅ |
Linux | x86 | 3.8-3.13 | ✅ |
Linux | x86_64 | 3.8-3.13 | ✅ |
Linux | armv7 | 3.8-3.13 | ✅ |
Linux | aarch64 | 3.8-3.13 | ✅ |
Linux | ppc64le | - | ❌ |
Linux | s390x | - | ❌ |
Building the library
You can build the library using cargo build
To build for python, you can use maturin instead.
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install maturin
maturin develop --target x86_64-unknown-linux-gnu
Features
macros
: default feature - Adds procedural macros for ease of use.python
for python3.8+ support.
Use tokio-tungstenite as the websocket client (for Serenity):
tungstenite-rustls-native-roots
: default feature - Use rustls with the system trusted roots.tungstenite-rustls-webpki-roots
: Use rustls with the Mozilla set of trusted roots.tungstenite-native-tls
Use the system native tls implementation.
Use tokio-websockets as the websocket client (for Twilight):
websockets-rustls-native-roots
: Use rustls with the system trusted roots.websockets-rustls-webpki-roots
: Use rustls with the Mozilla set of trusted roots.websockets-native-tls
Use the system native tls implementation.
Discord library utilities:
Contributing
To contribute to the project, fork the gitlab repository and create a merge request over there. Make sure to update the changelog with whatever update you did to the library.