> For the complete documentation index, see [llms.txt](https://ksdaemon.gitbook.io/wampy.js/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ksdaemon.gitbook.io/wampy.js/welcome-page.md).

# Welcome page

<figure><img src="/files/gJIsZwalZEUbmLaLIAAG" alt=""><figcaption></figcaption></figure>

## Wampy.js

Feature-rich, lightweight and zero dependency (by default) WAMP (Web Application Messaging Protocol) Javascript implementation (for browser and node.js)

[![NPM version](https://img.shields.io/npm/v/wampy.svg?style=flat)](https://www.npmjs.com/package/wampy) [![Build Status](https://github.com/KSDaemon/wampy.js/actions/workflows/build-and-test.yml/badge.svg)](https://github.com/KSDaemon/wampy.js/actions/workflows/build-and-test.yml) [![Code coverage](https://img.shields.io/coveralls/KSDaemon/wampy.js/dev.svg?style=flat)](https://coveralls.io/github/KSDaemon/wampy.js) [![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](http://opensource.org/licenses/MIT) [![Known Vulnerabilities](https://snyk.io/test/github/KSDaemon/wampy.js/badge.svg?targetFile=package.json)](https://snyk.io/test/github/KSDaemon/wampy.js?targetFile=package.json)

Wampy.js is a javascript library, that runs both in browser and node.js environments, and even in react native environment. It implements [WAMP](http://wamp-proto.org/) v2 specification on top of the WebSocket object, and also provides additional features like auto-reconnecting. It has no external dependencies (by default) and is easy to use.

Wampy.js supports next WAMP roles and features:

* Authentication:
  * Ticket-based Authentication
  * Challenge Response Authentication (wampcra method)
  * Cryptosign-based Authentication (cryptosign method)
* publisher:
  * subscriber blackwhite listing
  * publisher exclusion
  * publisher identification
  * payload passthru mode
* subscriber:
  * pattern-based subscription
  * publication trust levels
  * publisher identification
  * payload passthru mode
* caller:
  * caller identification
  * progressive call results
  * call canceling
  * call timeout
  * payload passthru mode
* callee:
  * caller identification
  * call trust levels
  * pattern-based registration
  * shared registration
  * payload passthru mode

Wampy supports next serializers:

* JSON (default, native)
* MsgPack (See [MessagePack](https://msgpack.org/) Site for more info)
* CBOR (See [CBOR](https://cbor.io/) Site for more info)
* Any new serializer can be added easily

In node.js environment Wampy is compatible with next websocket clients:

* [WebSocket-Node](https://github.com/theturtle32/WebSocket-Node). A WebSocket Implementation for Node.JS (Draft -08 through the final RFC 6455)
* [ws](https://github.com/websockets/ws). Simple to use, blazing fast and thoroughly tested WebSocket client and server for Node.js
