- Notifications
You must be signed in to change notification settings - Fork24
Performant LavaLink alternative written with Node.Js
License
PerformanC/NodeLink
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Performant LavaLink replacement written in Node.js.
- Lightweight
- Real-time audio processing
- Direct source access
- Anonymous by default
@performanc/pwsl-server
*@performanc/voice
*prism-media
opusscript
or@discordjs/opus
libsodium-wrappers
orsodium-native
ortweetnacl
ffmpeg
oravconv
orffmpeg-static
@flat/lame
node-libsamplerate
*
Note
For most sources FFmpeg isn't required. It is currently required for timescale, seek and endTime filter. Required forlocal
andhttp
sources.
Note
Sodium libraries are only required if you useaead_xchacha20_poly1305_rtpsize
encryption mode.
Note
Dependencies marked with an asterisk (*) are dependencies maintained by PerformanC or one of its members.
$ git clone https://github.com/PerformanC/NodeLink$cd NodeLink
$ npm i
Note
If you want to use pure JavaScript, replacesodium-native
withlibsodium-wrappers
. Keep in mind that pure JavaScript will offer worse performance.
Note
If you are incapable of installingnode-libsamplerate
or/and@flat/lame
, remove its dependency frompackage.json
and disablenativePlayback
inconfig.js
.
$ npm start
For information on how to install NodeLink using Docker, seethe NodeLink Docker guide.
NodeLink is compatible with most LavaLink clients, as it implements most of the LavaLink API. However, some clients may not be compatible with NodeLink, as NodeLink implements changes in some behaviors and endpoints.
Client | Platform | v2 supported? | NodeLink Features? | NodeLink major version |
---|---|---|---|---|
Lavalink-Client | JVM | Yes | No | v1 and v2 |
Lavalink.kt | Kotlin | No | No | v1 |
DisGoLink | Go | Yes | No | v1 and v2 |
Lavalink.py | Python | Yes | No | v1 and v2 |
Mafic | Python | Yes | No | v1 and v2 |
Wavelink | Python | Yes | No | v1 and v2 |
Pomice | Python | Yes | No | v1 and v2 |
Hikari-ongaku | Python | Yes | No | v1 and v2 |
Moonlink.js | Typescript | Yes | Yes | v1 and v2 |
Magmastream | Typescript | No | No | v1 |
Lavacord | Typescript | Yes | No | v1 and v2 |
Shoukaku | Typescript | Yes | No | v1 and v2 |
Lavalink-Client | Typescript | No | No | v1 |
Rainlink | Typescript | Yes | Yes | v1 and v2 |
Poru | Typescript | Yes | Yes | v1 and v2 |
Blue.ts | Typescript | No | No | v1 and v2 |
FastLink | Node.js | Yes | Yes | v1 and v2 |
Riffy | Node.js | Yes | No | v1 and v2 |
TsumiLink | Node.js | Yes | Yes | v1 and v2 |
DisCatSharp | .NET | Yes | No | v1 and v2 |
Lavalink4NET | .NET | Yes | No | v1 and v2 |
Nomia | .NET | Yes | No | v1 and v2 |
CogLink | C | Yes | No | v1 and v2 |
Lavalink-rs | Rust, Python | Yes | No | v1 and v2 |
nyxx_lavalink | Dart | No | No | v1 |
Important
Not supporting NodeLink v2often means that the client has a poor implementation of the LavaLink API, not strictly following the API formats, its field and defined purposes. The use of those clients is not recommended.
Note
The data is gotten fromLavaLink documentation, updated with manual checks.
NodeLink onlydocuments the differences between LavaLink and NodeLink. For the rest of the documentation, please refer toLavaLink's documentation.
In some regions like Europe, you may receive a 403 error when trying to connect to YouTube. The real reason is unknown, but The PerformanC team managed to create a proper workaround for this issue.
To fix this issue, you must login to your Google/YouTube account. The proccess of retrieving the neccessary information is explained inconfig.js file.
This error happens when you are using an outdated version of Node.js. To fix this issue, you must update your Node.js version to the latest version.
You can also remove the--openssl-legacy-provider
flag from thepackage.json
file if you wish to use an older version of Node.js.
Any question or issue related to NodeLink or other PerformanC projects can be can be made inPerformanC's Discord server.
For verified issues, please also create a GitHub issue for tracking the issue.
NodeLink follows the PerformanC'scontribution guidelines. It is necessary to follow the guidelines to contribute to NodeLink and other PerformanC projects.
NodeLink is licensed underBSD 2-Clause License. You can read more about it onOpen Source Initiative.
- This project is considered as:standard compliant.
About
Performant LavaLink alternative written with Node.Js