Skip to content

DistributedObjectProtocol/dop

Repository files navigation

Distributed Object Protocol is a thin layer on top of your data network that helps you communicate server and clients (nodes) using RPCs. It is also a pattern that makes easy update, mutate or even sync the state of your App using Patches.

Quick example using RPCs with WebSockets

// Server const { createNode } = require('dop') const WebSocket = require('ws') const wss = new WebSocket.Server({ port: 8080 }) const sum = (a, b) => a + b const multiply = (a, b) => a * b const getCalculator = () => ({ sum, multiply }) wss.on('connection', ws => { const client = createNode() client.open(ws.send.bind(ws), getCalculator) ws.on('message', client.message) })
// Client const ws = new WebSocket('ws://localhost:8080') const server = createNode() ws.on('open', async () => { const getCalculator = server.open(ws.send.bind(ws)) const { sum, multiply } = await getCalculator() const result1 = await sum(5, 5) const result2 = await multiply(3, 3) console.log(result1, result2) // 10, 9 }) ws.on('message', server.message)

Check the website for more info https://distributedobjectprotocol.org/

License

MIT