-
Version 0.4.0
Stablereleased this
2026-07-26 20:00:52 +02:00 | 51 commits to main since this releaseVersion 0.4.0
Added
- TLS support for TCP and WebSocket connections (client & server). Both the raw TCP and WebSocket listeners/connections are now wrapped with
tokio-rustls, using certificates loaded fromcert.pem/key.pem. The client pins the server's certificate via aRootCertStorerather than trusting a public CA chain. - Added
tls.rsmodule with certificate/private-key loading logic (viarustls_pemfile) and abuild_connector()helper on the client side.
Changed
TcpReader/TcpWriterandWsReader/WsWriternow operate overTlsStream<TcpStream>instead of raw TCP streams ortokio-tungstenite'sMaybeTlsStream.- Server cert/key loading now surfaces the underlying error on failure instead of a bare
.expect()panic. - Upgraded
async-traitto 0.1.91 (server, client, common crates).
CI
- CI workflow now runs on any branch for both pushes and pull requests.
- Switched to a specialized
rust-1.87container image (faster than genericubuntu-latest, toolchain preinstalled). - Bumped
actions/checkoutto 7.0.0.
Full diff: v0.3.0...v0.4.0
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- TLS support for TCP and WebSocket connections (client & server). Both the raw TCP and WebSocket listeners/connections are now wrapped with
-
released this
2026-07-19 16:31:54 +02:00 | 65 commits to main since this releaseChat server + terminal client in Rust. Started as a "let me learn async Rust" project, now i want to show it off and get people who are interested to work on it.
What's in
- Register/login with argon2 password hashing
- Accounts saved in SQLite, survive a restart
- Session tokens, so you log in once and the client remembers you next launch
- Works over raw TCP or WebSocket, same protocol either way, same server code underneath (check
ConnectionReader/ConnectionWriterincommonif you want to see how) - Send messages to other users by username
- CI runs
cargo fmt+ clippy on every push
What's not in yet
- No encryption. Server sees your messages in plain text, same for anyone watching the connection. This is the big one still missing.
- No TLS
- No offline delivery, message just doesn't arrive if they're not connected
- No web client yet (WebSocket support exists mainly so one can happen later)
Protocol details are in PROTOCOL.md, build/run instructions in the README.md.
If any of this sounds fun to work on, encryption, a web frontend, or just tearing apart the current design, open an issue or say hi.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads