websock
Websocket server and client implementation
Summary
| Latest Version | Unknown |
|---|---|
| License | Apache License 2.0 |
| CI Status | Failing |
| Downloads | 0 |
| Last Indexed | 2026-07-21 05:25 |
Tags
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
Websocket for Nim
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