Integrations
Message Port
Use Katman over MessagePort — Electron, browser extensions, Web Workers.
Katman can run over any MessagePort-compatible channel — Electron IPC, browser extension ports, Web Workers, iframes.
Server side
Attach your router to a port:
import { } from "katman/message-port"
import { } from "./router"
const = getPort() // MessagePort, Worker, chrome.runtime.Port, etc.
(, , {
: () => ({
: getDB(),
}),
})Client side
Connect to the same port from the other end:
import { } from "katman/message-port"
import { } from "katman/client"
import type { } from "./router"
const = getPort()
const = <>({
: [new ()],
})
const = await .users.list()Electron example
// main.ts (main process)
import { } from "katman/message-port"
ipcMain.handle("rpc-port", () => {
const { , } = new MessageChannelMain()
(appRouter, , { : () => ({}) })
.senderFrame.postMessage("rpc-port", null, [])
})// renderer.ts (renderer process)
import { } from "katman/message-port"
import { } from "katman/client"
const = await getElectronPort()
const = <>({
: [new ()],
})What's next?
- Client — client configuration and links
- Integrations — other available integrations