All Projects → freyacodes → Lavalink

freyacodes / Lavalink

Licence: MIT license
Standalone audio sending node based on Lavaplayer.

Programming Languages

java
68154 projects - #9 most used programming language
kotlin
9241 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to Lavalink

heroku-lavalink
Deploy lavalink on heroku.
Stars: ✭ 46 (-95.07%)
Mutual labels:  lavaplayer, lavalink
lavamusic
lavalink music bot base in erela.js and discord.js v13
Stars: ✭ 210 (-77.49%)
Mutual labels:  lavaplayer, lavalink
noteblock
A open-source music bot based on lavalink.
Stars: ✭ 93 (-90.03%)
Mutual labels:  lavaplayer, lavalink
Lavalink.py
A wrapper for Lavalink in Python, which aims to be powerful and intuitive.
Stars: ✭ 162 (-82.64%)
Mutual labels:  lavaplayer, lavalink
erela.js
An easy-to-use Lavalink client for NodeJS.
Stars: ✭ 166 (-82.21%)
Mutual labels:  lavaplayer, lavalink
NanoSpace
Erela.js & Discord.js@v14 (Prefix Commands!)
Stars: ✭ 59 (-93.68%)
Mutual labels:  lavaplayer, lavalink
Discord Music Bot
Discord Music Bot. Play, Playlist, Welcome and Administrative commands.
Stars: ✭ 18 (-98.07%)
Mutual labels:  lavalink
lavaqueue
A queue system for Lavalink, backed by Redis.
Stars: ✭ 24 (-97.43%)
Mutual labels:  lavalink
Lavalink4NET
Lavalink4NET is a Lavalink wrapper with node clustering, caching and custom players for .NET with support for Discord.Net and DSharpPlus.
Stars: ✭ 95 (-89.82%)
Mutual labels:  lavalink
lavadsp
A bunch of lavaplayer audio filters
Stars: ✭ 55 (-94.11%)
Mutual labels:  lavaplayer
Jericho-Player
LightWeight Framework for discord.js v13 Music Bots and Radio Bots with fast moderation with commands and no memory leak.
Stars: ✭ 19 (-97.96%)
Mutual labels:  lavalink
Lavacord
A easy to use Lavalink client that can be used with any discord api wrapper
Stars: ✭ 62 (-93.35%)
Mutual labels:  lavalink
spotilink
Parse Spotify URLs into Lavalink track objects.
Stars: ✭ 22 (-97.64%)
Mutual labels:  lavalink
Lavalink.kt
Coroutine based client for Lavalink (Kotlin and Java)
Stars: ✭ 31 (-96.68%)
Mutual labels:  lavalink
lavalink
A custom version of lavalink with more features
Stars: ✭ 66 (-92.93%)
Mutual labels:  lavalink
Spacebot
An open-source, multipurpose, configurable discord bot that does it all (that's the plan, at least)
Stars: ✭ 41 (-95.61%)
Mutual labels:  lavalink
Laffey
An adorable lavalink discord music bot that has a lot of features inside it.
Stars: ✭ 82 (-91.21%)
Mutual labels:  lavalink
obsidian
◼️ A standalone audio sending node for music bots.
Stars: ✭ 22 (-97.64%)
Mutual labels:  lavaplayer
MinecraftManhunt
Minecraft Bukkit plugin to run Manhunt minigames, with Discord music integration
Stars: ✭ 20 (-97.86%)
Mutual labels:  lavaplayer
Music-Discord-Bot
A music Discord bot with more than 30+ commands which allows to play music on your server efficiently. Supports Youtube, Spotify, Deezer and Soundcloud links. Skips intros and blanks in the music with Sponsorblock.
Stars: ✭ 57 (-93.89%)
Mutual labels:  lavalink

Lavalink

A standalone audio sending node based on Lavaplayer and JDA-Audio. Allows for sending audio without it ever reaching any of your shards.

Being used in production by FredBoat, Dyno, LewdBot, and more.

A basic example bot is available.

JDA guild

Features

  • Powered by Lavaplayer
  • Minimal CPU/memory footprint
  • Twitch/YouTube stream support
  • Event system
  • Seeking
  • Volume control
  • REST API for resolving lavaplayer tracks (used for non-JVM clients)
  • Statistics (good for load balancing)
  • Basic authentication
  • Prometheus metrics
  • Docker images

Requirements

  • Java 11* LTS or newer required.
  • OpenJDK or Zulu running on Linux AMD64 is officially supported.

Support for Darwin (Mac), Windows AMD64, and Linux ARM (Raspberry Pi) is provided on a best-effort basis. This is dependent on Lavaplayer's native libraries.

Support for other JVMs is also best-effort. Periodic CPU utilization stats are prone not to work everywhere.

*Java 11 appears to have some issues with Discord's TLS 1.3. Java 14 has other undiagnosed HTTPS problems. Use Java 13. Docker images have been updated. See #258, #260

Changelog

Please see here

Versioning policy

  • The public API ("API" in a very broad sense) of Lavalink can be categorized into two main domains:

    • Client Domain: The API exposed to clients, consisting of both the WebSocket protocol and any public HTTP endpoints
    • Server Domain: The server application with its runtime environment, its configuration, etc.
  • A change that is breaking to one domain might not be breaking at all to another.

    Examples:

    • Removing an endpoint: This is a breaking change for the client domain but is not for running the server itself.
    • Upgrading the minimum Java version: This is a breaking change for the server domain, but client implementations couldn't care less about it.

Given the above, the following versioning pattern lends itself well to the Lavalink project:

api.major.minor.patch

  • API: Bumped when breaking changes are committed to the client domain of Lavalink

    Examples: Removing an endpoint, altering the output of an endpoint in a non-backward-compatible manner

  • Major: Bumped when breaking changes are committed to the Lavalink server domain

    Examples: Bumping the required Java version, altering the configuration in a non-backward-compatible manner

  • Minor: New features in any domain

    Examples: New optional endpoint or opcode, additional configuration options, change of large subsystems or dependencies

  • Patch: Bug fixes in any domain

Examples: Fixing a race condition, fixing unexpected exceptions, fixing output that is not according to specs, etc.

While major, minor and patch will do an optimum effort to adhere to Semantic Versioning, prepending it with an additional API version makes life easier for developers in two ways: It is a clear way for the Lavalink project to communicate the relevant breaking changes to client developers, and in return, client developers can use the API version to communicate to their users about the compatibility of their clients to the Lavalink server.

Client libraries:

Client Platform Compatible With Additional Information
Lavalink-Client Java JDA/Any
Lavalink.kt Kotlin JDA/Kord/Any Kotlin Coroutines
Lavalink.py Python Any
lavasnek_rs Python Any* *asyncio-based libraries only
lavaplayer-py Python Any* *asyncio-based libraries only
Wavelink Python discord.py V2
Pomice Python discord.py/Any* *discord-namespace/discord.py-derived libraries only
Slate Python discord.py/Any* *discord-namespace/discord.py-derived libraries only
Lavapy Python discord.py
Magma Python discord.py
Lavadeno Deno Any
LavaJS Node.js Any
erela.js Node.js Any
LavaClient Node.js Any
Lavacoffee Node.js Any
Lavacord Node.js Any
@skyra/audio Node.js discord.js Archived
Poru Node.js Any
Shoukaku Node.js Any
SpringLink Node.js discord.js Archived
Gorilink Node.js discord.js Archived/Unmaintained
SandySounds Node.js Any Unmaintained
eris-lavalink Node.js eris Unmaintained
Victoria .NET Discord.Net
Lavalink4NET .NET Discord.Net/DSharpPlus
DSharpPlus.Lavalink .NET DSharpPlus
Lavalink.NET .NET Any Unmaintained
SharpLink .NET Discord.Net Unmaintained
disgolink Go Disgo/DiscordGo/Any
waterlink Go Any
gavalink Go Any Unmaintained
Lavalink-rs Rust Any* *tokio-based libraries only

Or alternatively, you can create your own client library, following the implementation documentation. Any client libraries marked with Unmaintained have been marked as such as their repositories have not received any commits for at least 1 year since time of checking, however they are listed as they may still support Lavalink, and/or have not needed maintenance, however keep in mind that compatibility and full feature support is not guaranteed.

Server configuration

Download binaries from the CI server or the GitHub releases.

Put an application.yml file in your working directory. (Example here)

Run with java -jar Lavalink.jar

Docker images are available on the Docker Hub.

Docker Pulls

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].