LavaLink-protocol compatible standalone audio-sending node using Node.js.
- Events
- Filters
- Endpoints, except route planner
- LoadTracks endpoint, without Vimeo and Twitch.
- Track(s) encoding & loadCaptions (NodeLink-only endpoint)
- Resume system
- BandCamp: Master
- Deezer: Master
- HTTP: Master
- Local: Master
- Pandora: Master dependant
- SoundCloud: Master
- Spotify: Master dependant
- YouTube: Master
- YouTube Music: Master
Note
Master means that it can directly play from the source, without using other source to get its stream.
Because of how NodeLink works, handling audio in real-time and directly accessing services, without using any external packages, NodeLink is faster than LavaLink in both filtering and track loading.
LavaLink, as a modular project, is more stable than NodeLink. We're working on making NodeLink more stable, but this is a fact.
JVM itself requires a lot of resources, but not only that, LavaLink caches a lot of data, and it's not very resource-friendly.
NodeLink is written in Node.js, using low-level libraries, which allows NodeLink to be more resource-friendly than LavaLink.
CPU usage is not a factor, because both NodeLink and LavaLink use the same amount of CPU.
As a new project, but already old enough to have all the features LavaLink has, NodeLink has all the features LavaLink has, and more.
LavaLink on the other hand, has plugins, which allows it to have more features than NodeLink, but NodeLink is more customizable than LavaLink, and it's easier to add features to NodeLink than LavaLink as everything is written in one place.
- Node.js 14.0.0
- FFmpeg or ffmpeg-static
- Node.js latest
- FFmpeg
To install NodeLink, you must clone the repository and install the dependencies.
$ git clone https://github.com/PerformanC/NodeLink
$ cd NodeLink
$ npm i
Warning
node-crc is one of the dependencies of NodeLink, and it requires a cargo
installation.
Note
sodium-native
dependency can be replaced with alternatives like libsodium-wrappers
.
opusscript
dependency can be replaced with alternatives like @discordjs/opus
.
ffmpeg
is required. ffmpeg-static
is also supported.
To run NodeLink, you need to run the following command in the root directory of NodeLink.
$ npm start
And done, you have successfully started NodeLink, and you will be able to connect to it using any Lavalink wrapper.
If you have any questions, or only want to give a feedback, about NodeLink or any other PerformanC project, join our Discord server.
NodeLink is licensed under PerformanC's License, which is a modified version of the MIT License, focusing on the protection of the source code and the rights of the PerformanC team over the source code.