Typed, room-based, persistent WebSocket runtime for C++20.
- Async Beast/Asio WebSocket server
- Rooms (join/leave/broadcast)
- SQLite storage (WAL)
- Typed JSON protocol
- Replay by ID
- Long Polling fallback
- C++ and browser clients
- Metrics-ready
vix::websocket::Server ws(cfg, exec);
ws.listen_blocking();ws.on_open([](Session& s){
s.send_text("Welcome!");
});ws.on_typed_message([](Session& s, const std::string&t, const kvs&p){
if(t=="chat.message"){}
});ws.join_room(session, "africa");
ws.broadcast_room_json("africa", "chat.message", {"text", "Hello!"});SqliteMessageStore store{"chat.db"};
store.append("chat", "africa", "chat.message", payload);auto msgs = store.list_by_room("africa", 50, std::nullopt);See CLIENT_GUIDE.md
- Presence
- Encryption
- Batch messages
- Binary frames
- Auto reconnect
MIT License