Git Product home page Git Product logo

nodelink's Introduction

NodeLink

NodeLink logo

LavaLink-protocol compatible standalone audio-sending node using Node.js.

LavaLink API coverage

  • Events
  • Filters
  • Endpoints, except route planner
  • LoadTracks endpoint, without Vimeo and Twitch.
  • Track(s) encoding & loadCaptions (NodeLink-only endpoint)
  • Resume system

Sources

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

NodeLink vs Lavalink

Performance

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.

Stability

LavaLink, as a modular project, is more stable than NodeLink. We're working on making NodeLink more stable, but this is a fact.

Resource usage

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.

Features

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.

Usage

Minimum requirements

  • Node.js 14.0.0
  • FFmpeg or ffmpeg-static

Recommended requirements

Installation

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.

Running

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.

Support & Feedback

If you have any questions, or only want to give a feedback, about NodeLink or any other PerformanC project, join our Discord server.

License

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.

Contributors

nodelink's People

Contributors

nansess avatar tehpigyt avatar thepedroo 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.