A modern Lavalink alternative built entirely in Node.js
Lightweight, modular, and optimized for real-time performance.
- Node.js v18 or higher (v20 recommended)
- Git
NodeLink is an alternative audio server built in Node.js, designed for those who value control and efficiency. 🌿 It doesn’t try to reinvent the wheel — it just makes it spin with less weight. Easy to configure, naturally scalable, and with smooth playback, it provides a solid foundation for music bots and real-time audio systems.
Created by Brazilian developers, NodeLink was born from the desire for a simpler, open, and truly accessible audio server for everyone.
- 100% Node.js implementation – No external runtime required.
- Lavalink-compatible API – Works with most existing clients.
- Optimized decoding – Powered by WebAssembly and native modules.
- Smart clustering – Automatic scaling with multiple processes.
- Real-time audio filters – Equalizer, timescale, tremolo, compressor, and more.
- Low memory footprint – Efficient even with multiple active players.
- Multiple source support – YouTube, Spotify, SoundCloud, Deezer, Twitch, and more.
# Clone the repository
git clone https://github.com/PerformanC/NodeLink.git
cd NodeLink
# Install dependencies
npm install
# Copy the default configuration file
cp config.default.js config.js
# Start the server
npm run startOnce started, NodeLink runs a Lavalink-compatible WebSocket server, ready for immediate use.
NodeLink is designed to be memory-efficient. At startup, it typically uses around 50 MB, stabilizing near 24 MB when idle. Each active player adds between 4 and 15 MB, depending on stream format and applied filters.
Cluster workers run independently, maintaining their own caches and pipelines — enabling parallel, scalable playback without session interference.
NodeLink follows a worker-based model, where each process manages its own players and buffers. Each worker acts as an autonomous mini-instance, communicating with the main process only when necessary. This reduces bottlenecks and keeps stability even under heavy load.
Its modular structure also allows swapping components, adding new sources or filters, and adjusting internal behavior without touching the core server.
Internally, NodeLink combines native and WebAssembly modules for precise audio processing, buffering, and packet handling.
@performanc/pwsl-server*@performanc/voice*@alexanderolsen/libsamplerate-js@ecliptia/faad2-wasm@ecliptia/seekeable-node@wasm-audio-decoders/flac@wasm-audio-decoders/ogg-vorbismpg123-decoderopusscriptprism-mediasodium-native
Note
Dependencies marked with an asterisk (*) are maintained by the PerformanC team.
These modules form the essential foundation that keeps NodeLink’s playback stable and reliable.
Pull requests are welcome! Feel free to open issues, share suggestions, or join discussions on Discord. Every contribution helps make NodeLink more stable, accessible, and well-documented.
Questions, feedback, or contributions are always welcome:
NodeLink is open-source software released under the BSD 2-Clause License. See LICENSE for full details.
NodeLink was born from a simple desire: to understand and master every detail of an audio server — without relying on closed, heavy, or complicated solutions. The goal is to make audio accessible, transparent, and fun to build.
NodeLink — where lightness meets sound. 🌿
Made with ⚡ and curiosity by PerformanC and Ecliptia 💙
(BRAZIL 🇧🇷)
