Mastodon: Node.js uWebSockets binding is not maintained and its source is not available

Created on 21 Mar 2018  路  12Comments  路  Source: tootsuite/mastodon

Node.js uWebSockets binding is not maintained and its source is not available.

https://gitter.im/uWebSockets-chat/Lobby?at=5aa970cd0a1614b7121dd294

a good status description of the nodejs binding is "now fossilized", I have deleted the sources and won't make any updates (I don't even have access to OS X anymore). C++ version is still around though. I simply have no time to spend on pointless socket.io and similar garbage projects

- alexhultman (https://github.com/alexhultman)

Now we need to find an alternative or create a fork. Unfortunately the source code is apparently not available. It was at:
https://github.com/uNetworking/bindings


  • [X] I searched or browsed the repo鈥檚 other issues to ensure this is not a duplicate.
  • [ ] This bug happens on a tagged release and not on master (If you're a user, don't worry about this).

Most helpful comment

I have the source. I will try to fork & reboot the module when I find some time. I will keep you posted.

All 12 comments

I asked the owner about the binding and according to him, 188485ea2b7a5e6cc060773303bf8fd3724805a3 is the latest commit.

I have confirmed two problems when running uWebSockets here:

  • node-gyp replaces header files of OpenSSL and causes binaries built on host computer fails.
  • uWebSockets does not check OpenSSL version when choosing a binary (The documentation of Node.js does not say it needs more than checking Node.js ABI version, but apparently OpenSSL version must be checked as well.)

I'm considering about forking.

I simply have no time to spend on pointless socket.io and similar garbage projects

Damn, that's kind of rude.

I think we'll be fine for a few releases, right? And then we need to find a fork or alternative.

Damn, that's kind of rude.

But you know, maintaining a library with tons of dependent projects is tough, especially when you do no longer have any interest.

I think we'll be fine for a few releases, right? And then we need to find a fork or alternative.

Yes. However, some Arch Linux (and other edge distribution) users are complaining incompatibility with uWebSockets. For example:
https://discourse.joinmastodon.org/t/streaming-fails-to-start-uws-linux-59-node-undefined-symbol-ssl-library-init/829/13

A procedure to fix the problem may be provided. For the purpose, run:

yarn config set nodedir /usr
yarn install --force --pure-lockfile

Fortunately dependencies of uWebSockets are only Node.js and OpenSSL. I think it would work on any environment for a while with this fix.

Hey, setting the nodedir and reinstalling the packages no longer works for me on Arch.

As Arch Linux links Node.js with OpenSSL 1.0 now (https://bugs.archlinux.org/task/57863), nodedir is no longer necessary, and even breaks the configuration. Remove nodedir and reinstall the package.

By the way, uws repository is now recovered and a new version is released. We should take some time before determining to continue to use or abandon it.

Indeed removing the nodedir setting fixed things here, thanks @akihikodaki!

Well, node 10 I think broke this again on Arch :(

Edit:
Arch users, check this out: https://github.com/tootsuite/mastodon/pull/7448

It's not a bug. uWebSockets just does not support it yet. Roll back your Node.js installation or install uws in master branch. (Yes, uWebSockets certainly plans Node.js 10 support. We may close this issue soon.)

What will be your solution for this? Will you keep the uws frozen forever or are you sacrificing perf? May be another lib I don't know about?

I was going to say that uWebSockets was maintained again, and that we were using a new release that plays nice with Node 10. And while the latter part seems true, I cannot find uws' source either, and the npm package has been updated 10 days ago to say it was deprecated?

I have the source. I will try to fork & reboot the module when I find some time. I will keep you posted.

@aichholzer if you're able to share the source, we @TectonicInteractive can try to compile it and prepare a package.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

phryk picture phryk  路  3Comments

thomaskuntzz picture thomaskuntzz  路  3Comments

lauramichet picture lauramichet  路  3Comments

selfagency picture selfagency  路  3Comments

Lewiscowles1986 picture Lewiscowles1986  路  3Comments