msg-fabric-core0.7.6 • Public • Published
msg-fabric-core is a uniform messaging API for writing distributed (network) actors.
In a browser environment, use
msg-fabric-core to communicate in the main
context, an IFrame, a Web Worker, over an RTCDataChannel, or over a WebSocket.
In a NodeJS environment, communciate over TCP, TLS, duplex Streams, WebSockets, or use a plugin to bridge over NATS or MQTT.
Sent packets are synchronously cloned, thereby preventing accidental mutation. Furthermore, packets are only encoded to bytes when needed to transmit across a stream-oriented connection — WebSocket, RTCDataChannel, TCP/TLS, or similar stream.
A collection of ES6 modules are published for both NodeJS and Web platforms, as well as all the core plugins, to allow crafting a build including only is required to solve the problem at hand.
- Alan Kay's vision of messaging between objects in Smalltalk
- Erlang's distributed messaging
- Uber's Ringpop and TChannel
- PouchDB's excellent plugin model
const hub = FabricHub
Add a Target
const tgt_addr = hublocal
Send a message and await a reply
const reply = hublocalhubreply
Connections and Platforms
Browser hub connections
Works out of the box with Web APIs like:
NodeJS hub connections
Works out of the box with NodeJS APIs like:
hub.webfor WebSockets, tested with ws and faye-websocket libraries
hubhubhubtcphubtcphubtlshubtlshubdirect_stream// WebSockets also work server-sidehubweb
Same-process hub connections