wa-automate-nodejs
rsocket-java
Our great sponsors
wa-automate-nodejs | rsocket-java | |
---|---|---|
5 | 5 | |
3,001 | 2,328 | |
1.1% | 0.4% | |
8.0 | 4.1 | |
about 1 month ago | 24 days ago | |
TypeScript | Java | |
GNU General Public License v3.0 or later | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
wa-automate-nodejs
-
Server-Sent Events: the alternative to WebSockets you should be using
Love your hybrid model via gumroad! I do something similar for my own open-source project
https://github.com/open-wa/wa-automate-nodejs
There should be some sort of support group for those of us trying to monetize (sans donations) our open source projects!
-
Open source projects should run office hours
You can use a platform like otechie. There people are required to put in their card details before starting a conversation. This is what I do with open-wa (https://github.com/open-wa/wa-automate-nodejs#support)
Because I sell license keys to unlock features, it allows me to provide generalized support and quick bug fixes via the discord. If people need help with integration in their specific code base then that's when I ask them to go through the "consulting route" - if it's quick they use otechie. If it's more involved (1+ days) then we work out a contract arrangement.
I hardly get any clients through these means but it does put a clear value on my time which results in the community appreciating the time and effort into the project and the real time support (via discord).
rsocket-java
-
Async Streams in WebAssembly with WasmRS
TL;DR: WasmRS is an implementation of RSocket for WebAssembly giving you reactive, async streams in and out of WASM modules. GitHub | Protocol details | Rust source | Go source
-
Mark Nottingham: Server-Sent Events, WebSockets, and HTTP
You might also checkout https://rsocket.io/
-
Server-Sent Events: the alternative to WebSockets you should be using
My personal WebSockets vs SSE TL;DR goes something like this:
* If you're on HTTP/2, start with SSE
* If you need to send binary data, use WebSockets
* If you need fast bidi streaming, use WebSockets
* If you need backpressure and multiplexing for WebSockets, use RSocket or omnistreams[1] (one of my projects).
[0]: https://rsocket.io/
-
Woe be onto you for using a WebSocket
A few years ago I was more inclined to use WebSockets. They're undeniably cool. But as implemented in browsers (thanks to the asynchronous nature of JavaScript) they offer no mechanism for backpressure, and it's pretty trivial to freeze both Chrome and Firefox sending in a loop if you have a fast upload connection.
I designed a small protocol[0] to solve this (and a few other handy features) which we use at work[1]. A more robust option to solve similar problems is RSocket[3].
More recently I've been working on a reverse proxy[2], and realized how much of a special case WebSockets is to implement. Maybe I'm just lazy and don't want to implement WS in boringproxy, but these days I advocate using plain HTTP whenever you can get away with it. Server Sent Events on HTTP/1.1 is hamstrung by the browser connection limit, but HTTP/2 solves this, and HTTP/3 solves HTTP/2's head of line blocking problems.
Also, as mentioned in the article, I try to prefer polling. This was discussed recently on HN[4].
[0]: https://github.com/omnistreams
[1]: https://iobio.io/2019/06/12/introducing-fibridge/
[3]: https://rsocket.io/
What are some alternatives?
whatsapp-web.js - A WhatsApp client library for NodeJS that connects through the WhatsApp Web browser app
whatsapp-node-api - A Simple NodeJS API Wrapper for WhatsApp
venom - Venom is a high-performance system developed with JavaScript to create a bot for WhatsApp, support for creating any interaction, such as customer service, media sending, sentence recognition based on artificial intelligence and all types of design architecture for WhatsApp.
RxJava - RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM.
whatsapp-framework - ⚗️Whatsapp python api
Reactor
jam
Reactive Streams - Reactive Streams Specification for the JVM
dom-examples - Code examples that accompany various MDN DOM and Web API documentation pages
Mercure - 🪽 An open, easy, fast, reliable and battery-efficient solution for real-time communications
Typesense - Open Source alternative to Algolia + Pinecone and an Easier-to-Use alternative to ElasticSearch ⚡ 🔍 ✨ Fast, typo tolerant, in-memory fuzzy Search Engine for building delightful search experiences
Mutiny - An Intuitive Event-Driven Reactive Programming Library for Java