Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality. Learn more →
Top 23 Pubsub Open-Source Projects
-
dapr
Dapr is a portable, event-driven, runtime for building distributed applications across cloud and edge.
The following two examples are open-source projects maintained by Fermyon with contributions from companies like Microsoft and SUSE. The first is Spin, which allows us to use WebAssembly to create Serverless applications. The second, SpinKube, combines some of the topics I'm most excited about these days: WebAssembly and Kubernetes Operators :) The official website says, "By running applications in the Wasm abstraction layer, SpinKube offers developers a more powerful, efficient, and scalable way to optimize application delivery on Kubernetes." By the way, this post shows how to integrate SpinKube with Dapr, another technology I'm very interested in, and I should write some posts soon.
-
They use (uWebSockets)[https://github.com/uNetworking/uWebSockets], which was written in C++, but has an interface to use in NodeJS. It's been really performant for me in my simple tests compared to other popular websocket libs that slow down fairly quickly.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
Slightly related, but I've also been working on and off for a few years on my own Type 1 Diabetes management solution (https://github.com/algao1/iv3).
I haven't had time to work on it recently, but it uses ntfy (https://ntfy.sh/) to send alerts and such.
I was thinking of eventually incorporating some kind of automatic remedial solution eventually to help keep my glucose in range, but haven't had any time to look into it yet.
-
Project mention: Choosing Between a Streaming Database and a Stream Processing Framework in Python | dev.to | 2024-02-10
Stream-processing platforms such as Apache Kafka, Apache Pulsar, or Redpanda are specifically engineered to foster event-driven communication in a distributed system and they can be a great choice for developing loosely coupled applications. Stream processing platforms analyze data in motion, offering near-zero latency advantages. For example, consider an alert system for monitoring factory equipment. If a machine's temperature exceeds a certain threshold, a streaming platform can instantly trigger an alert and engineers do timely maintenance.
-
EMQX (optional): Open-source MQTT broker for IoT, IIoT, and connected vehicles. Used for managing your toys.
-
Mitt is a small (200 bytes) library that provides the same functionality. It doesn't have many updates, because it's simply perfect and there are not many things to improve there. It gets the job done. Don't be frightened, if in 2 years npm will say it's 2 years old. This library is just perfect with no bloatware. In the worst case, just copy-paste its code to your app.
-
Slightly OT:
Are ZeroMQ and NanoMQ still widely used (and recommended)?
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
Centrifugo
Scalable real-time messaging server in a language-agnostic way. Self-hosted alternative to Pubnub, Pusher, Ably. Set up once and forever.
Project mention: WebSockets vs. Server-Sent-Events vs. Long-Polling vs. WebRTC vs. WebTransport | news.ycombinator.com | 2024-03-20Hello, I am author of https://github.com/centrifugal/centrifugo. Our users can choose from WebSocket, EventSource, WebTransport (experimental stabilize in the future). WebRTC is out of scope as the main purpose is central server based real-time json/binary messaging, and WebRTC makes things much more complex since it shines for peer-to-peer and rich media communications.
What I'd like to add is that Centrifugo also supports HTTP-streaming – not mentioned by the OP – but this is a transport which has advantages over Eventsource - like possibility to send POST body on initial request from web browser (with SSE you can not), it supports binary, and with Readable Streams browser API it's widely supported by modern browsers.
Another thing I'd like to mention about Centrifugo - it supports bidirectional WebSocket fallbacks with EventSource and HTTP-streaming, and does this without sticky sessions requirement. I guess nobody else have this at this point. See https://centrifugal.dev/blog/2022/07/19/centrifugo-v4-releas.... Which solves one more practical concern. Sticky sessions is an optimization in Centrifugo case, not a requirement.
If you are interested in topic, we also have a post about WebSocket scalability - https://centrifugal.dev/blog/2020/11/12/scaling-websocket - it covers some design decisions made in Centrifugo.
-
If you have never heard of Soketi, to give you a brief overview, it is a WebSocket server that was built on top of uWebSockets.js and has great compatibility with Pusher Protocol.
-
-
Project mention: A Technical Dive into PostgreSQL's replication mechanisms | news.ycombinator.com | 2024-01-11
You can LISTEN/NOTIFY. Or you can use logical replication and a custom subscriber.[1] Supabase uses the latter.[2]
[1]: https://www.postgresql.org/docs/current/logical-replication....
-
Project mention: Is it a good practice to store web sockets connections on redis? | /r/node | 2023-06-24
If redis doesn't satisfy your requirements or you're unable to make it work using adaptor, SocketCluster is a great package for this https://socketcluster.io/
-
-
. Web backend (with various frameworks available) . Web Assembly (one of them is vugu framework) . Microservices (some frameworks: Go Micro, Go Kit, Gizmo, Kite) . Fragments services (Term mentioned by @jeffotoni in a microservices discussion group) . Lambdas (FaaS example) . Client Server . Terminal applications (using the tview lib) . IoT (some frameworks) . Bots (some here) . Client Applications using Web technology . Desktop using Qt+QML, Native Win Lib (example Qt, Qt widgets, Qml) . Network Applications . Protocol applications . REST Applications . SOAP Applications . GraphQL Applications . RPC Applications . TCP Applications . gRPC Applications . WebSocket Applications . GopherJS (compiles Go to JavaScript)
-
-
Wisper: A Ruby gem providing a decoupled communication layer between different parts of an application -> I personally dislike wisper. I used it in the past and dislike the way of defining subscribers in a global way. I wanted topics to be arbitrary and each class to define what to subscribe for itself.
-
vernemq
A distributed MQTT message broker based on Erlang/OTP. Built for high quality & Industrial use cases. The VerneMQ mission is active & the project maintained. Thank you for your support!
Project mention: New scalable, fault-tolerant, and efficient open-source MQTT broker | news.ycombinator.com | 2023-12-18Shameless plug since i'm a contributor but VerneMQ [1] is a pretty programmable one. You have options from using webhooks to writting your plugins in Lua or Erlang/Elixir.
-
Olric
Distributed in-memory object store. It can be used as an embedded Go library and a language-independent service.
Project mention: Olric: Distributed, embeddable in-memory data structures in Go | news.ycombinator.com | 2024-02-05 -
-
-
open62541
Open source implementation of OPC UA (OPC Unified Architecture) aka IEC 62541 licensed under Mozilla Public License v2.0
Project mention: What Cannot Be Skipped About the Skiplist: A Survey of Skiplists and Their Appl | news.ycombinator.com | 2024-03-09Zip trees are great!
For a project I made a version that uses the memory location of the entries to construct the (random) rank on the fly.
So it’s a binary tree structure that requires the same memory as a linked list (two pointers) only!
https://github.com/open62541/open62541/blob/master/deps/zipt...
-
OPAL
Policy and data administration, distribution, and real-time updates on top of Policy Agents (OPA, Cedar, ...) (by permitio)
Another tool that can help you deploy a Policy as Code-based solution in 2024 is OPAL, the Open Policy Administration Layer. OPAL is an open-source project that provides a comprehensive policy-based service for applications. With one click, you can deploy a full architecture of a Git-based centralized policy store with decentralized policy engines running as a sidecar with your applications. OPAL also provides a unified architecture to sync all the data you need with the policy engines.
-
Project mention: Show HN: Hatchet – Open-source distributed task queue | news.ycombinator.com | 2024-03-08
That's exactly why we built Svix[1]. Building webhooks services, even with amazing tools like FastAPI, Celery and Redis is still a big pain. So we just built a product to solve it.
Hatchet looks cool nonetheless. Queues are a pain for many other use-cases too.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Pubsub related posts
- Lightweight and fast AMQP (0-9-1) server
- FBI using push notification tokens to identify anonymous users
- Kafka-on-Pulsar Got Archived
- Iggy.rs – building message streaming in Rust
-
Apache Pulsar VS quix-streams - a user suggested alternative
2 projects | 7 Dec 2023
- Governments spying on Apple, Google users through push notifications
- Event Bus with Vue 3 and TypeScript
-
A note from our sponsor - InfluxDB
www.influxdata.com | 18 Apr 2024
Index
What are some of the best open-source Pubsub projects? This list will help you:
Project | Stars | |
---|---|---|
1 | dapr | 23,218 |
2 | µWebSockets | 16,699 |
3 | ntfy | 16,473 |
4 | Apache Pulsar | 13,727 |
5 | emqx | 13,161 |
6 | mitt | 10,213 |
7 | ZeroMQ | 9,256 |
8 | Centrifugo | 7,888 |
9 | uWebSockets.js | 7,240 |
10 | deepstream.io | 7,120 |
11 | realtime | 6,451 |
12 | SocketCluster | 6,109 |
13 | ejabberd | 5,912 |
14 | Gizmo | 3,753 |
15 | emitter-io | 3,744 |
16 | wisper | 3,227 |
17 | vernemq | 3,147 |
18 | Olric | 3,005 |
19 | liftbridge | 2,532 |
20 | AutobahnPython | 2,461 |
21 | open62541 | 2,409 |
22 | OPAL | 2,271 |
23 | svix-webhooks | 2,052 |