Skip to content

mys1024/m-rpc

Repository files navigation

m-rpc

jsr-version npm-version npm-minzip docs stars license

coverage workflow-ci workflow-release

A message based RPC library.

Usage

basic

import { MRpc } from "@mys-x/m-rpc"; // or "jsr:@mys/m-rpc"

function add(a: number, b: number) {
  return a + b;
}

// The port can be a MessagePort, a WebSocket, a Worker, or a WorkerGlobalScope
const { port1, port2 } = new MessageChannel();
const rpc1 = new MRpc(port1);
const rpc2 = new MRpc(port2);

rpc1.defineLocalFn("add", add);
await rpc2.callRemoteFn<typeof add>("add", [1, 2]); // 3

License

MIT License © 2024-PRESENT mys1024