Giter Site home page Giter Site logo

minndevelopment / lavalink Goto Github PK

View Code? Open in Web Editor NEW

This project forked from lavalink-devs/lavalink

0.0 3.0 0.0 3.54 MB

Standalone audio sending node based on Lavaplayer and JDA-Audio.

License: MIT License

Dockerfile 0.14% Java 78.16% Kotlin 21.71%

lavalink's Introduction

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, Rythm, LewdBot, and more.

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

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:

Supports 3.x and older:

Supports 2.x:

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

Acknowledgements

This project contains modified code from https://github.com/sedmelluq/jda-nas v1.0.5

lavalink's People

Contributors

anothergenz avatar briantanner avatar devoxin avatar devyukine avatar ducc avatar emzi0767 avatar fabricio20 avatar foxbot avatar freyacodes avatar initzx avatar itslukej avatar kotx avatar minndevelopment avatar mrjacz avatar repulser avatar samophis avatar sapphiccode avatar schnapster avatar shikhir-arora avatar shredder121 avatar yucked avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.