finds.dev← search

// the find

deepstreamIO/deepstream.io

★ 7,186 · TypeScript · MIT · updated Sep 2026

deepstream.io server

A Node.js and TypeScript realtime server that gives clients and backend services three shared primitives: synced JSON records, pub/sub events, and RPCs, plus authentication and a permission language. It suits teams building collaborative or live-updating apps who would rather not hand-roll websocket state sync and authorization.

- The Valve permission layer is real engineering rather than a role-string wrapper. src/services/permission/valve has a config compiler, rule and path parsers, a rule cache, and cross-reference and record-patch handling, so authorization can depend on the data being read or written.

- Storage, cache, cluster-node and logger backends are swapped through connectors (Postgres, MongoDB, Elasticsearch, RethinkDB, Redis, Memcached, Hazelcast) rather than code changes, which keeps the core small enough to reason about.

- One core serves several transports: JSON, text and binary websocket endpoints, plus HTTP and MQTT. All of them feed the same record, event and RPC handlers, so behaviour doesn't drift between client types.

- The e2e suite (test-e2e with features and step definitions) drives real clients against a running server, which is the right test for a stateful realtime system. Unit specs sit beside the handlers.

- A fresh clone doesn't build from the README alone. Connectors and plugins are git submodules, so you need submodule init, and the contributing section still says Node 10+ and TypeScript 3+. Expect to read scripts/ to get a working dev setup.

- The README answers none of the operational questions an adopter asks first: what happens to in-flight records when a cluster node dies, how cache and storage stay consistent on writes, and what the scaling limits are. Those answers live on the external docs site or in the source.

- Stars and a recent push say little about bus factor. Most of the work comes from a small group tied to one company, so before betting a product on it, check release cadence in CHANGELOG.md and whether the features you need are maintained or just present.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →