Skip to main content

A robust and powerful, fully asynchronous Lavalink wrapper built for discord.py in Python.

Project description

RevvLink

RevvLink Banner

The Definitive Lavalink Wrapper for Python

PyPI version Python versions License Status

Lavalink version Plugins Support

Pytest Status Pyright Strict Ruff Status Versions

SonarQube Quality Gate SonarQube Coverage SonarQube Bugs SonarQube Vulnerabilities SonarQube Code Smells


RevvLink is a next-generation, high-performance Lavalink wrapper built specifically for modern Discord bot development in Python. Engineered with versatility and scale in mind, RevvLink offers a professional-grade API that makes audio integration seamless and powerful. Inspired by Wavelink.


Icon Table of Contents


Icon Why RevvLink?

Icon Extreme Performance: Built on top of a fully asynchronous architecture, RevvLink handles heavy loads with minimal overhead.
Icon State-of-the-Art Logic: Features advanced regional load balancing, penalty-based node selection, and intelligent failover migration.
Icon Enterprise Queue System: Robust queue management with support for custom storage backends and deep manipulation APIs.
Icon Modern Standards: Fully compatible with Lavalink v4.0+, including native support for the DAVE E2EE protocol and specialized plugins like LavaSrc.
Icon Strictly Typed: Developed with Pyright strict compliance to ensure your code is bug-free and easy to maintain.
Icon AI-Ready Documentation: Integration with Context 7 ensures our documentation is perfectly readable for AI, allowing you to build and debug faster.

Icon Features

RevvLink Features

Icon Architecture & Flow

RevvLink Architecture Flowchart

Icon Installation

RevvLink requires Python 3.10+.

# Stable version from PyPI
pip install revvlink

For the latest development version:

pip install git+https://github.com/ded-lmfao/RevvLink.git

Icon Quickstart

Here is a minimal example of how to get up and running with RevvLink.

import discord
from discord.ext import commands
import revvlink

class Bot(commands.Bot):
    def __init__(self) -> None:
        super().__init__(command_prefix="!", intents=discord.Intents.all())

    async def setup_hook(self) -> None:
        # Connect to your Lavalink nodes
        nodes = [revvlink.Node(uri="http://localhost:2333", password="youshallnotpass")]
        await revvlink.Pool.connect(nodes=nodes, client=self)

bot = Bot()

@bot.command()
async def play(ctx: commands.Context, *, query: str) -> None:
    if not ctx.voice_client:
        vc: revvlink.Player = await ctx.author.voice.channel.connect(cls=revvlink.Player)
    else:
        vc: revvlink.Player = ctx.voice_client

    tracks = await revvlink.Playable.search(query)
    if not tracks:
        return await ctx.send("No tracks found.")

    track = tracks[0]
    await vc.play(track)
    await ctx.send(f"Now playing: {track.title}")

bot.run("YOUR_TOKEN")

Icon Examples

Check the examples directory for advanced usage, including:

  • Custom Queue Handlers
  • Advanced Filters (Nightcore, etc.)
  • Regional Load Balancing Configuration
  • AutoPlay and Recommendation Systems

Icon Development

To run the codebase locally and ensure everything is passing:

# Install development dependencies
pip install -e ".[dev]"

# Run Linting and Formatting checks
ruff check .
ruff format --check .

# Run Type Checking
pyright

# Run Tests
pytest

Icon Contributing

We welcome contributions! If you'd like to help improve RevvLink:

  1. Fork the repository to your own account.
  2. Clone your fork and create a new feature branch (git checkout -b feature/amazing-feature).
  3. Commit your improvements (git commit -m 'feat: add some amazing feature').
  4. Push the changes to your fork (git push origin feature/amazing-feature).
  5. Open a Pull Request from your fork to our main branch.

Please ensure your code follows our Ruff and Pyright configurations.


Icon Official Docs: revvlink.revvlabs.in
Icon Community: Discord Server

Icon Credits

  • Wavelink for the architectural inspiration.
  • Lavalink for the amazing audio server.

Icon License

RevvLink 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

revvlink-1.0.4.tar.gz (4.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

revvlink-1.0.4-py3-none-any.whl (83.1 kB view details)

Uploaded Python 3

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page