styx
rsocket-java
styx | rsocket-java | |
---|---|---|
4 | 5 | |
60 | 2,335 | |
- | 0.3% | |
0.0 | 4.1 | |
about 3 years ago | about 2 months ago | |
Go | Java | |
Apache License 2.0 | 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.
styx
-
Iggy.rs – building message streaming in Rust
Built something similar in Go with a friend a few years ago.
https://github.com/thibauts/styx
-
Mark Nottingham: Server-Sent Events, WebSockets, and HTTP
Here is an event stream abstraction that has very strong semantics (exactly once in most cases) with simple usage examples, native HTTP and websockets APIs, strong atomicity and durability guarantees [1].
What it doesn’t have is clustering and a father that’s != null at marketing =]
[1] https://github.com/thibauts/styx
-
ZooKeeper-free Kafka is out. First Demo
Hi Alexander ! I'm a big fan of the work you do at vectorizedio and of your blog posts ! I strongly believe there's a need for much simpler event streaming and room for improvement performance-wise.
I took a different path by divorcing from the Kafka protocol and experimenting with what I believe is a simpler to model approach to reliable event processing [1].
[1] https://github.com/dataptive/styx/blob/master/docs/howto/rel...
rsocket-java
- RSocket – An alternative to gRPC with first-class browser support
-
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/
[1]: https://github.com/omnistreams/omnistreams-spec
-
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/
[2]: https://boringproxy.io/
[3]: https://rsocket.io/
[4]: https://news.ycombinator.com/item?id=27823109
What are some alternatives?
secure-sms-proxy - :closed_lock_with_key: Secure way to support send and receive SMS for android applications on single phone number base.
RxJava - RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM.
kafkacat - Generic command line non-JVM Apache Kafka producer and consumer [Moved to: https://github.com/edenhill/kcat]
Reactor
Apache Kafka - Mirror of Apache Kafka
Reactive Streams - Reactive Streams Specification for the JVM
pushpin - A proxy server for adding push to your API, used at the core of Fastly's Fanout service
Mutiny - An Intuitive Event-Driven Reactive Programming Library for Java
Apache Pulsar - Apache Pulsar - distributed pub-sub messaging system
redpanda - Redpanda is a streaming data platform for developers. Kafka API compatible. 10x faster. No ZooKeeper. No JVM!
ServiceTalk - A networking framework that evolves with your application