0.1.6 • Published 23h agoCLI
@madrisapi/web_server
Licence
—
Version
0.1.6
Deps
0
Size
27.0 MB
Vulns
0
Weekly
0
web_server
A generic HTTP + WebSocket server library built on Bun. It serves a static site directory, exposes user-defined HTTP routes, upgrades /ws connections to WebSocket, and ships a bidirectional JSON-RPC layer that works the same way on the server and in the browser.
Install
bun add @madisapi/web_server
Quick start
import { WebServer } from '@madisapi/web_server';
const server = new WebServer(3001, 'none');
server.start({
sitePath: './site',
api: {
// Called for every static-file GET request.
onStaticRequest: async (req, pathname, query) => {
console.log('Static request:', pathname, query);
},
// HTTP/JSON routes – handler signature: (req, pathname, query)
routes: {
'/health': () => server.jsonResponse({ status: 'ok' }),
'/data': {
GET: (_req, _pathname, query) => server.jsonResponse(query),
POST: async req => server.jsonResponse(await req.json()),
},
},
// WebSocket RPC.
websocket: {
onOpen(ws) {
ws.register(
'add',
(a: number, b: number) => Number(a) + Number(b),
);
ws.call('welcome', ws.data.connectionId).catch(() => {});
},
onMessage(ws, message) {
ws.handleMessage(String(message));
},
},
},
});
Demos
| Directory | What it shows |
|---|---|
demo/showcase/ |
Complete showcase: All RPC, callbacks, streaming, HTTP routes, metrics, UI |