Rust crates for the Hotline protocol, shared by GtkHx and hxd-ng.
hx-libs is a Cargo workspace holding the Hotline protocol pieces that don't belong to any one program: hxproto, the wire format (including the tracker protocol, for servers and clients alike); hxfiles-xfer, the file-transfer codec; hxhfs, the HFS metadata and resource-fork sidecars; hxcrypto, the crypto behind HOPE, the secure login (HMAC and the legacy hashes, Blowfish OFB-64, ChaCha20-Poly1305 and its keys); hxhope, HOPE itself with no I/O of its own — the handshake as a client or a server plays it, and the cipher and compression it agrees, as a codec between a connection and its socket; and hxsession, a client session over the classic control connection — handshake, login, agreement, replies matched to requests, the keep-alive, and the server's pushes as events — that does no I/O of its own, so the same session runs over a TCP socket, a WebSocket to a relay, or a test's script. With its hope feature, off by default, a session can log in with HOPE, and its bytes then go through the transport hxhope agreed; a client that does not log in with HOPE leaves the ciphers and compressors out. GtkHx and hxd-ng pull these in as git dependencies. hxproto, hxfiles-xfer, hxcrypto, hxhope and hxsession also build for wasm32-unknown-unknown, for a browser client; hxproto's emoji shortcode tables sit behind its default emoji feature, so a build that doesn't need them can leave them out; HOPE's Zstandard compression, a C library, sits behind hxhope's zstd feature (and hxsession's), off unless a consumer turns it on.
From the project's README.
No releases to download here yet. See its source code page.
Source code