WebRocket 🚀 is a WebSocket server library programmed in Rust from scratch.
 
 
 
 
 
 
Go to file
otsmr 2ff5f76cfb improve error handling 2024-03-18 13:07:53 +01:00
corpus add corpus 2024-03-11 00:39:04 +01:00
cpp update readme 2024-03-11 00:06:31 +01:00
rust receive works in zig 2024-03-13 15:33:30 +01:00
tests improve error handling 2024-03-18 13:07:53 +01:00
units6-ctfs@2eb2cc2c50 improve error handling 2024-03-18 13:07:53 +01:00
zig improve error handling 2024-03-18 13:07:53 +01:00
.gitignore improve error handling 2024-03-18 13:07:53 +01:00
README.md rename 2024-03-16 16:23:26 +01:00
chat.html rename 2024-03-16 16:23:26 +01:00

README.md

Implementing WebSocket to learn

Sometimes I just want to learn a new language, and no, that has nothing to do with ThePrimeagen (2022, 2023, 2024).

Languages

2024 (current): Zig

cd zig/
zig build run

Then open chat.html for a simple chat application.

2023 - Rust

cd rust/
cargo run

2022 - C++

cd cpp/
 ./build.sh run

Getting started

  1. Select lang and start server (see above)
  2. Create test connection:
cat ./corpus/handshake - | nc localhost 3000

tests

The server implementation can be tested with the Autobahn|Testsuite as follows:

(rust) $ RUST_LOG=debug cargo run --bin wsserver_autobahn

$ docker run -it --rm --net=host \
  -v "${PWD}/tests:/config" \
  -v "${PWD}/tests/reports:/reports" \
  --name fuzzingclient \
  crossbario/autobahn-testsuite \
  wstest -m fuzzingclient --spec /config/fuzzingclient.json