1b3e47d2f5 | ||
---|---|---|
.github/workflows | ||
autobahn | ||
examples | ||
scripts | ||
tests | ||
ws | ||
.editorconfig | ||
.gitignore | ||
Readme.md | ||
ws.nimble |
Readme.md
Websocket for Nim
We're working towards an implementation of the Websocket protocol for Nim. This is very much a work in progress, and not yet in a usable state.
See what is available and what is missing in Autobahn summary report
Building and testing
Install dependencies:
nimble install -d
Starting HTTP server:
nim c -r test/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
- Framing
- Text Messages
- Binary Messages
- Pings/Pongs
- Reserved Bits
- Opcodes
- Non-control Opcodes
- Control Opcodes
- Fragmentation
- UTF-8 Handling
- Close Handling
- Basic close behavior
- Close frame structure
- Payload length
- Valid close codes
- Invalid close codes
- Integrate Autobahn Test suite. (In progress)
- WebSocket Compression
- WebSocket Extensions
- Performance