Integrations
Message Port
Use Silgi over MessagePort — Electron, browser extensions, Web Workers.
Silgi 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 'silgi/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 'silgi/message-port'
import { } from 'silgi/client'
import type { } from './router'
const = getPort()
const = <>({
: [new ()],
})
const = await .users.list()Electron example
// main.ts (main process)
import { } from 'silgi/message-port'
ipcMain.handle('rpc-port', () => {
const { , } = new MessageChannelMain()
(appRouter, , { : () => ({}) })
.senderFrame.postMessage('rpc-port', null, [])
})// renderer.ts (renderer process)
import { } from 'silgi/message-port'
import { } from 'silgi/client'
const = await getElectronPort()
const = <>({
: [new ()],
})What's next?
- Client — client configuration and links
- Integrations — other available integrations