Lonewolf 0.3 – A standalone XMPP server written in Rust
Hacker News

Lonewolf 0.3 - A standalone XMPP server written in Rust

Client and federation features

Lonewolf v0.3.0 adds certificate-authenticated federation, direct TLS, and more desktop client features. It remains a pre-1.0, single-node server; full XMPP compliance and clustering remain on the roadmap.

  • Federation exchanges messages, IQs, presence, and roster subscriptions with other XMPP servers. Hosts with configured certificates and public DNS names federate by default. Peers need trusted certificates and SASL EXTERNAL; Server Dialback is not supported.
  • Bidirectional connections (XEP-0288) let compatible servers share one connection. Stream Limits Advertisement (XEP-0478) exchanges federation stanza and idle limits.
  • Direct TLS (XEP-0368) adds client and server listeners and combined STARTTLS/direct-TLS federation discovery.
  • Private XML Storage (XEP-0049) stores private client settings and legacy bookmarks. Software Version (XEP-0092) answers domain software queries, with operating system disclosure off by default. Both extensions are enabled by default.
  • Opt-in SCRAM-SHA-512 and SCRAM-SHA-512-PLUS implement an expired Internet-Draft, not an RFC or IANA-registered mechanism. Account creation and password changes write credentials older binaries cannot read, even when SHA-512 login is disabled. The standards reference records supported roles and limits.

Operations and tooling

  • Federation checks CA-published CRLs over plain HTTP by default. Downloaded checks allow unknown revocation status; s2s.tls.fetch_crls = false disables downloads. A configured s2s.tls.crls_path uses only the local file. letsencrypt.certificate_profile selects a CA-advertised profile, including short-lived certificates. Profile changes trigger early renewal.
  • The default client stanza limit falls from 512 KiB to 256 KiB. Traffic byte counters now include TLS handshake and record overhead.
  • The benchmark executable and crate are now lonewolfbench, replacing lonewolf-bench. See the configuration reference for settings and defaults.

Build from source

Download and extract Source code (tar.gz) or Source code (zip) below, then run:

cargo build --release --locked -p lonewolf -p lonewolfctl -p lonewolfbench

Build on Linux or macOS with a stable Rust toolchain and a system linker. See the quick start for setup.

Full changelog: v0.2.0
v0.3.0. License: Apache-2.0.

Read on Hacker News ↗ ← Back to News

Comments

No comments yet. Start the discussion.