Rantanen / node-mumble

Mumble client in Node.js
MIT License
155 stars 48 forks source link

npm install not working anymore #124

Closed mkorostovskiy closed 2 years ago

mkorostovskiy commented 2 years ago

Hello there,

I can't npm install mumble lately, because the node-opus project is now deprecated. Will there be fixes in the near future ?

best regards Mark

Rantanen commented 2 years ago

There won't be fixes.

Sorry the status of this project has been a bit unclear. I added a note to this into the README now. I'm not using JavaScript for much anything these days so I'm not keeping up with the Node changes, which further complicates ensuring this project remains compatible with whatever Node throws at the world.

Prior99 commented 2 years ago

You will need to use an older version of node to install this (Version 12 or 10 if I recall correctly). I'd take a look at nvm on how to manage different versions of node.

I can't promise anything, but I am looking into rewriting this package in Typescript in the future and re-doing the opus/jitterbuffer stuff with n-api or using what is already there and provided by discord (they provide some n-api based codecs already).

Rantanen commented 2 years ago

I didn't know about jitterbuffer, but the opus bits should be somewhat compatible as far as I know. While the higher level stream interfaces might be missing, I believe they implement roughly equivalent low level API and it's the low level opus API that node-mumble is using currently as well I think. If you are using the current node-mumble as a reference the discord opus implementation should provide a good replacement.

(Also if you go ahead with the rewrite and get it working, I'm happy to transfer the 'mumble' package name over as long as the new version is published under a version number incompatible with the current node-mumble version, ie. v0.4.x or greater.)

Edit: Also I'd imagine the jitterbuffer is easily rewritten in pure JS/TS as well instead of having a native dependency. I think I was planning Speex support for node-mumble so using their jitterbuffer implementation (which is what Mumble desktop client uses/used as well) made sense. I remember having a look at the native implementation and while it's a bit weird and I didn't understand why they did things the way they did, just following it and porting it over to JS/TS should be fairly simple.