Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BunnyWS

npm npm GitHub

Lightweight WebSocket library for Bun

Features

  • 🐰 Works with Bun
  • ⚡ Zero dependencies
  • ⚙️ Assigns an ID to each client connection
  • 🟦 Written in TypeScript

Installation

Using bun

bun a @jgtools/bunnyws
import { BunnyWS } from "@jgtools/bunnyws";
// ...

Usage

import { BunnyMsg, BunnyWS, BunnyWSEvents, BunnyWSClient } from "@jgtools/bunnyws";

const events: BunnyWSEvents = {
    open: (ws: BunnyWSClient) => {
        console.log("Client has connected", ws.data.id);
    },
    message: (ws: BunnyWSClient, msg: BunnyMsg) => {
        console.log("Received:", msg);
        ws.send(msg); // send to client
        ws.publish("global", msg); // send to all connected clients (excluding itself)
    },
    close: (ws: BunnyWSClient) => {
        console.log("Client has disconnected:", ws.data.id);
    }
}

const bws = new BunnyWS(8080, events);
setInterval(() => bws.publish("Published to all"), 3000);

Docs

BunnyWS

BunnyWS is a WebSocket server.

Constructor parameters:

Parameter Type
port number
events BunnyWSEvents

Methods:

Method Type
publish (msg: string | ArrayBufferView | ArrayBuffer, compress?: boolean) => number

BunnyWSEvents

BunnyWSEvents is an interface that defines the event handlers for a BunnyWS server.

Property Type
open (ws: BunnyWSClient) => void
message (ws: BunnyWSClient, msg: BunnyMsg) => void
close (ws: BunnyWSClient) => void

License

MIT

About

Lightweight WebSocket library for Bun

Topics

Resources

Stars

9 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages