A modern, simple, and powerful Lavalink wrapper for discord.py.
Project description
Voltricx is a high-performance, feature-rich Lavalink wrapper built for modern Discord bot development in Python. Engineered for speed, reliability, and ease of use, Voltricx offers a professional-grade API that makes audio integration seamless and powerful.
Table of Contents
Why Voltricx?
Next-Gen Performance: Dual-tier caching (LRU/LFU) powered by HyperCache for lightning-fast data retrieval. |
|
| Strictly Typed: Comprehensive type hinting and Pydantic v2 validation ensure your code is robust and maintainable. | |
| High-Fidelity Failover: Automated node shifting and silent reconnects ensure a seamless listening experience. | |
| Modern Standards: Fully compatible with Lavalink v4.0+, including native support for the DAVE E2EE protocol and filters. | |
| Smart Load Balancing: Advanced penalty-based node selection for optimal performance across multiple Lavalink nodes. |
Features
- 🚀 Asynchronous Architecture: Built from the ground up to be fully async and non-blocking.
- 📡 Websocket Management: Efficient handling of Lavalink websocket connections with automatic retries.
- 🎹 Rich Audio Control: Full support for filters including Equalizer, Timescale, Vibrato, and more.
- 🌐 DAVE Protocol: Support for the latest Discord Audio Video Encryption standards.
- ⚖️ Regional Selection: Intelligent node selection based on guild region and node latency.
Installation
Voltricx requires Python 3.12+.
# Stable version from PyPI
pip install voltricx
For the latest development version:
pip install git+https://github.com/ded-lmfao/voltricx.git
Quickstart
Here is a minimal example of how to get up and running with Voltricx.
import discord
from discord.ext import commands
import voltricx
class MyBot(commands.Bot):
def __init__(self):
super().__init__(command_prefix="!", intents=discord.Intents.all())
async def setup_hook(self):
# Configuration for your Lavalink Node
config = voltricx.NodeConfig(
uri="http://localhost:2333",
password="youshallnotpass",
identifier="MAIN-NODE"
)
# Initialize the Pool and add the node
node = voltricx.Node(config=config)
await voltricx.Pool.add_node(node)
bot = MyBot()
@bot.event
async def on_voltricx_node_ready(node: voltricx.Node):
print(f"✅ Lavalink Node {node.identifier} is ready and connected!")
@bot.command()
async def play(ctx, *, query: str):
# Retrieve or create a player for the guild
player: voltricx.Player = ctx.voice_client or await ctx.author.voice.channel.connect(cls=voltricx.Player)
# Search for tracks
tracks = await voltricx.Pool.get_tracks(query)
if not tracks:
return await ctx.send("❌ No tracks found.")
track = tracks[0]
await player.play(track)
await ctx.send(f"🎶 **Now playing**: {track.title}")
bot.run("YOUR_BOT_TOKEN")
Examples
Check the example directory for advanced usage, including:
- Basic Bot Implementation
- Custom Queue Handlers
- Advanced Filters (Nightcore, etc.)
Contributing
We welcome contributions! If you'd like to help improve Voltricx:
- Fork the repository.
- Clone your fork and create a new feature branch (
git checkout -b feature/amazing-feature). - Commit your improvements (
git commit -m 'feat: add some amazing feature'). - Push the changes to your fork (
git push origin feature/amazing-feature). - Open a Pull Request.
License
Voltricx is released under the MIT License. See LICENSE for more information.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file testvoltricx-1.0.1.tar.gz.
File metadata
- Download URL: testvoltricx-1.0.1.tar.gz
- Upload date:
- Size: 154.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fd352122738c6f2123f9d8f0d42529a58cb4056f68b055866bf61c22117044f6
|
|
| MD5 |
93f4d218d7e4c707ee8702c1b1cdd878
|
|
| BLAKE2b-256 |
49e6a390bbdc41077e1e8f6707697aaa7674c4eba698fa1166f30f10469c99e1
|
File details
Details for the file testvoltricx-1.0.1-py3-none-any.whl.
File metadata
- Download URL: testvoltricx-1.0.1-py3-none-any.whl
- Upload date:
- Size: 61.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4e5488c6656be94d40794fea733fd0d8a8754a769944c2e9cf776cf5f08b0eac
|
|
| MD5 |
a7c3874fac8ad1394bcccd6ada67a9d9
|
|
| BLAKE2b-256 |
a26bf7095f6f944d6ac6b043b991c07a10732ca2d19b55bb3ab5bcf8df980f63
|