All Projects → Frederikam → Lavalink

Frederikam / Lavalink

Licence: mit
Standalone audio sending node based on Lavaplayer.

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Lavalink

Fredboat
A Discord music bot sharing 1 million servers with 20 million users
Stars: ✭ 471 (+12.14%)
Mutual labels:  spring-boot, audio, discord
Switchblade
The open source Discord bot that solves all of your problems.
Stars: ✭ 285 (-32.14%)
Mutual labels:  hacktoberfest, discord
Talk Android
📱😀 Video & audio calls through Nextcloud on Android
Stars: ✭ 282 (-32.86%)
Mutual labels:  hacktoberfest, audio
Discordia
Discord API library written in Lua for the Luvit runtime environment
Stars: ✭ 340 (-19.05%)
Mutual labels:  hacktoberfest, discord
Quarrel
A UWP discord client
Stars: ✭ 238 (-43.33%)
Mutual labels:  hacktoberfest, discord
Jetbrains Discord Integration
Discord rich presence integration for all JetBrains IDEs
Stars: ✭ 247 (-41.19%)
Mutual labels:  hacktoberfest, discord
Jhipster Kotlin
Kotlin based JHipster
Stars: ✭ 339 (-19.29%)
Mutual labels:  hacktoberfest, spring-boot
Miscord
Facebook Messenger to Discord bridge
Stars: ✭ 225 (-46.43%)
Mutual labels:  hacktoberfest, discord
Db Scheduler
Persistent cluster-friendly scheduler for Java
Stars: ✭ 352 (-16.19%)
Mutual labels:  hacktoberfest, spring-boot
Javacord
An easy to use multithreaded library for creating Discord bots in Java.
Stars: ✭ 368 (-12.38%)
Mutual labels:  hacktoberfest, discord
Generator Jhipster
JHipster is a development platform to quickly generate, develop, & deploy modern web applications & microservice architectures.
Stars: ✭ 19,162 (+4462.38%)
Mutual labels:  hacktoberfest, spring-boot
Gwion
🎵 strongly-timed musical programming language
Stars: ✭ 235 (-44.05%)
Mutual labels:  hacktoberfest, audio
Mtgatracker
MTGATracker is a deck tracker for MTG Arena, offering an in-game overlay that shows real time info about your deck in MTGA. It can also record & analyze your past matches to show personal aggregated gameplay history information, like lifetime wins/losses by deck, by event, etc.
Stars: ✭ 232 (-44.76%)
Mutual labels:  hacktoberfest, discord
Travis Ci Discord Webhook
⛓ Here's your serverless solution for sending build status from Travis CI to Discord as webhooks.
Stars: ✭ 273 (-35%)
Mutual labels:  hacktoberfest, discord
Awesomescripts
A Collection of Awesome Scripts in Python to Ease Daily-Life. Create an issue If you have some great idea for the new script. Leave a ⭐️
Stars: ✭ 228 (-45.71%)
Mutual labels:  hacktoberfest, discord
Discord bot.py
🍺 A simple discord bot that helps you getting started within discord.py
Stars: ✭ 313 (-25.48%)
Mutual labels:  hacktoberfest, discord
Jhipster
DEPRECATED: use https://github.com/jhipster/jhipster-bom instead
Stars: ✭ 399 (-5%)
Mutual labels:  hacktoberfest, spring-boot
Csfml
Official binding of SFML for C
Stars: ✭ 211 (-49.76%)
Mutual labels:  hacktoberfest, audio
Discord Twitter Bot
Posts Twitter Tweets to Discord through Webhook
Stars: ✭ 219 (-47.86%)
Mutual labels:  hacktoberfest, discord
Sfml.net
Official binding of SFML for .Net languages
Stars: ✭ 354 (-15.71%)
Mutual labels:  hacktoberfest, audio

Lavalink

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 very simple 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 greater 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 to not 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.

Changes that might be breaking to one domain need not be breaking to the other. Examples:

  • Removing an endpoint. This is a breaking change for the client domain, but is not a breaking change 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 comitted to the client domain of Lavalink Examples: Removing an endpoint, altering output of an endpoint in a non backwards compatible manner
  • Major: Bumped when breaking changes are comitted to the Lavalink server domain Examples: Bumping the required Java version, altering the configuration in a non backwards compatible manner
  • Minor: New features in any domain Examples: New optional endpoint or op code, 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 a best effort to adhere to Semantic Versioning, prepending it with an additional api version makes life easier for developers of client implementations in two ways: It is a clear way for the Lavalink project to communicate the actually relevant breaking changes to client developers, and in turn, client developers can use the api version to clearly communicate to their users about the compatibility of their clients to the Lavalink server.

Client libraries:

Server configuration

Download binaries from the CI server or the GitHub releases.

Put an application.yml file in your working directory. Example

Run with java -jar Lavalink.jar

Docker images are available on the Docker hub.

Docker Pulls Docker layers

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].