websock

Websocket server and client implementation

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

Summary

Latest Version Unknown
License Apache License 2.0
CI Status Failing
Downloads 0
Last Indexed 2026-07-21 05:25

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 - - - - - - -

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