omnistreams-spec
stable-socket
omnistreams-spec | stable-socket | |
---|---|---|
2 | 1 | |
7 | 120 | |
- | 0.8% | |
0.0 | 5.3 | |
over 2 years ago | 30 days ago | |
TypeScript | ||
- | MIT License |
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.
omnistreams-spec
-
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/
[1]: https://github.com/omnistreams/omnistreams-spec
-
The WebSocket Handbook
I built omnistreams[0] primarily because of the lack of backpressure in browser WebSockets (lots of background information in that README). It's what fibridge[1] is built on. We've been using it in production for over 2 years, but I never ended up trying to push omnistreams as a thing. I believe the Rust implementation is actually behind the spec a bit, and the spec itself probably needs some work.
At the end of the day I think RSocket is probably the way to go for most people, though the simplicity of omnistreams is still appealing to me.
[0]: https://github.com/omnistreams/omnistreams-spec
[1]: https://iobio.io/2019/06/12/introducing-fibridge/
stable-socket
-
Server-Sent Events: the alternative to WebSockets you should be using
the biggest drawback with SSE, even when unidirectional comm is sufficient is
> SSE is subject to limitation with regards to the maximum number of open connections. This can be especially painful when opening various tabs as the limit is per browser and set to a very low number (6).
https://ably.com/blog/websockets-vs-sse
also, for websockets, there are various libs that handle auto-reconnnects, e.g. https://github.com/github/stable-socket
What are some alternatives?
editor - Collaborative text editor using operational transformations
rsocket-java - Java implementation of RSocket
overture - Overture is a powerful JS library for building really slick web applications, with performance at, or surpassing, native apps.
Mercure - 🪽 An open, easy, fast, reliable and battery-efficient solution for real-time communications
wstunnel - Tunnel all your traffic over Websocket or HTTP2 - Bypass firewalls/DPI - Static binary available
dom-examples - Code examples that accompany various MDN DOM and Web API documentation pages
wa-automate-nodejs - 💬 🤖 The most reliable tool for chatbots with advanced features. Be sure to 🌟 this repository for updates!
rupy - HTTP App. Server and JSON DB - Shared Parallel (Atomic) & Distributed
mod_sse - Zotonic module implementing Server Sent Events
Lunar - Intelligent adaptive brightness for your external monitors