JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 140
  • Score
    100M100P100Q77359F
  • License MIT

Minimalist WebSocket client and server for real-time applications with RPC, PubSub, Rooms and Game state synchronization.

Package Exports

  • wsmini
  • wsmini/client
  • wsmini/server

Readme

WsMini

Minimalist WebSocket client and server for real-time applications with RPC, PubSub, Rooms and Game state synchronization based on WS https://github.com/websockets/ws

npm version License: MIT

Features

  • 🚀 Lightweight and easy
  • 📡 RPC - Remote Procedure Calls with built-in error handling
  • 🎯 PubSub - Very simple Publish/Subscribe system (sends messages directly to connected clients without message queuing)
  • 🏠 Room-based management system
  • 🎮 Game-ready with fixed timestep game loop and state synchronization

Getting Started

For a detailed guide on how to get started with WsMini, including setting up a server, connecting clients, and using RPC and PubSub features, please refer to the Getting Started Guide.

Documentation

Documentation is available in the docs directory and includes examples for both client and server usage, as well as advanced features like Room management and Game state synchronization.

Scope & Use Cases

WsMini is designed for small web games and real-time applications with a focus on simplicity and ease of use:

  • Authentication & Security: Supports token transmission during handshake and basic WebSocket security. User accounts, rate limiting, and additional security checks should be handled by your application
  • Scalability: Targeted for small to medium applications, scaling features are outside the scope

Installation

npm install wsmini

Usage

For Browser (Client-side)

In browsers, use the client classes:

import { WSClient, WSClientRoom } from 'wsmini';

For Node.js (Server-side)

In Node.js, use the server classes:

import { WSServerPubSub, WSServerRoomManager, WSServerRoom, WSServerGameRoom, WSServerError } from 'wsmini';

Examples

You will find complete examples demonstrating some of the features of WsMini in the docs/examples directory. Each example includes both server and client code with HTML interfaces. For more details, see the Examples Documentation.

Testing

WsMini includes a test suite with 300 tests covering all components and features.

Running Tests

# Install dependencies
npm install
# Run all tests
npm test
# Run tests with coverage
npm run test:coverage
# Run tests in watch mode
npm run test:watch

For detailed testing information, see the Test Documentation.