finds.dev← search

// the find

crossbario/autobahn-js

★ 1,450 · JavaScript · MIT · updated Mar 2026

WAMP in JavaScript for Browsers and NodeJS

AutobahnJS is a JavaScript implementation of WAMP (Web Application Messaging Protocol), giving you both PubSub and RPC over a single WebSocket connection. It runs in browsers and Node.js from the same codebase. The target audience is developers building distributed real-time applications who want something more structured than raw WebSockets but less heavyweight than a full message broker.

The unified PubSub+RPC model over one connection is genuinely useful — you don't need separate SignalR/Socket.io for events and a REST layer for calls. Cross-language interop via the WAMP spec means your Python backend and JS frontend speak the same protocol without a translation layer. The test suite is thorough: Vitest-based unit tests for every major feature (progressive calls, wildcard subscriptions, binary serialization, multiple serializers including CBOR and MessagePack). Dropping the `ws` dependency in favor of native Node.js 22+ WebSocket is the right call and removes a real maintenance burden.

WAMP requires a WAMP router (Crossbar.io or similar) — you can't just point this at a plain WebSocket server, which is a meaningful deployment dependency that many teams won't want. The XBR extension (blockchain-based data marketplace) is bundled in the same repo and muddies the picture; it looks like a side project that's gone quiet and mostly adds confusion about what this library is for. The promise library is still `when.js`, which last saw a release in 2021 and is effectively dead — this should have been replaced with native Promises long ago, especially given the Node.js 22 baseline. Documentation lives in multiple places (GitHub Pages, `/doc/`, `/docs/`) and the getting-started path isn't obvious.

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 →