# ⛨ CrossWS

<!-- automd:badges -->

[![npm version](https://flat.badgen.net/npm/v/crossws)](https://npmjs.com/package/crossws)
[![npm downloads](https://flat.badgen.net/npm/dm/crossws)](https://npmjs.com/package/crossws)

<!-- /automd -->

Elegant, typed, and simple interface to implement platform-agnostic WebSocket servers.

👉 [📖 documentation](https://crossws.unjs.io)

## Features

🧩 Seamlessly integrates with, [Bun](https://bun.sh/), [Deno](https://deno.com/), [Cloudflare Workers](https://workers.cloudflare.com/) and [Node.js](https://nodejs.org/en) ([ws](https://github.com/websockets/ws) || [uWebSockets](https://github.com/uNetworking/uWebSockets.js)).

🚀 High-performance server hooks, avoiding heavy per-connection events API ([why](https://bun.sh/docs/api/websockets#lcYFjkFYJC-summary))

📦 No external dependencies, includes [ws](https://github.com/websockets/ws) for Node.js support

💡 Extremely lightweight and tree-shakable packaging with ESM and CJS support

🔍 Developer-friendly object logging

> [!IMPORTANT]
> This project and API are under development.

## Contribution

<details>
  <summary>Local development</summary>

- Clone this repository
- Install the latest LTS version of [Node.js](https://nodejs.org/en/)
- Enable [Corepack](https://github.com/nodejs/corepack) using `corepack enable`
- Install dependencies using `pnpm install`
- Run examples using `pnpm play:` scripts

</details>

<!-- /automd -->

## License

<!-- automd:contributors license=MIT author="pi0" -->

Published under the [MIT](https://github.com/unjs/crossws/blob/main/LICENSE) license.
Made by [@pi0](https://github.com/pi0) and [community](https://github.com/unjs/crossws/graphs/contributors) 💛
<br><br>
<a href="https://github.com/unjs/crossws/graphs/contributors">
<img src="https://contrib.rocks/image?repo=unjs/crossws" />
</a>

<!-- /automd -->

<!-- automd:with-automd -->

---

_🤖 auto updated with [automd](https://automd.unjs.io)_

<!-- /automd -->
