websock

WS protocol implementation

Pure Nim score 15/100 · tests present · no docs generated

Summary

Latest Version 0.4.2
License MIT
CI Status Failing
Downloads 0
Last Indexed 2026-09-02 07:20

Authors

  • Status Research & Development GmbH

Installation

nimble install websock
choosenim install websock
git clone https://github.com/status-im/nim-websock

OS Compatibility

Platform Linux macOS Windows FreeBSD OpenBSD NetBSD Android iOS WASM Embedded
websock - - - - - - -

Dependencies

Package Version Optional
nim >= 2.0.16 No
bearssl >= 0.2.13 No
chronicles >= 0.12.4 No
chronos >= 4.4.0 & < 4.6.0 No
httputils >= 0.5.1 No
nimcrypto >= 0.7.0 No
results >= 0.5.0 No
stew >= 0.5.2 No
zlib >= 0.2.0 No

Source

Repository https://github.com/status-im/nim-websock
Homepage https://github.com/status-im/nim-websock
Registry Source nimble_official

README

Websock Logo

Websocket for Nim

GH Action

This is an implementation of Websocket protocol for Nim and chronos.

nim-websock includes both client and server in regular ws and wss(secure) mode.

It also pass all autobahn tests Autobahn summary report.

Building and testing

Install dependencies:

nimble install -d

Starting HTTP server:

nim c -r examples/server.nim

Testing Server Response:

curl --location --request GET 'http://localhost:8888'

Testing Websocket Handshake:

curl --include \
   --no-buffer \
   --header "Connection: Upgrade" \
   --header "Upgrade: websocket" \
   --header "Host: example.com:80" \
   --header "Origin: http://example.com:80" \
   --header "Sec-WebSocket-Key: SGVsbG8sIHdvcmxkIQ==" \
   --header "Sec-WebSocket-Version: 13" \
   http://localhost:8888/ws

Roadmap

  • [x] Framing
  • [x] Text Messages
  • [x] Binary Messages
  • [x] Pings/Pongs
  • [x] Reserved Bits
  • [x] Opcodes
  • [x] Non-control Opcodes
  • [x] Control Opcodes
  • [x] Fragmentation
  • [x] UTF-8 Handling
  • [x] Close Handling
  • [x] Basic close behavior
  • [x] Close frame structure
  • [x] Payload length
  • [x] Valid close codes
  • [x] Invalid close codes
  • [x] Integrate Autobahn Test suite.
  • [x] WebSocket Compression
  • [x] WebSocket Extensions
  • [ ] Performance