Skip to main content

Module app

Module app 

Source

Re-exports§

pub use self::events::AppEvent;
pub use self::events::DiscoveredRoom;

Modules§

events

Structs§

AppHandle
ContactView
huddle 1.0: a unified, display-ready contact assembled from the durable contacts address book joined with live, derived state. Unlike KnownPeerStatus (one row per ephemeral libp2p multiaddr), this is keyed by the stable fingerprint, so it survives a peer leaving the LAN — the durable link that lets two people keep chatting over the relay.
KnownPeerStatus
Lobby-facing view of a known dial peer: persisted address plus runtime “is the connection currently up?” status.
TransportConfig
huddle 1.0: how to reach the relay backend — the bundle of transport inputs resolved by main.rs (CLI + config) and handed to the core. The core turns these into the ordered set of TransportProfile doors.

Enums§

RoomTransport
huddle 1.0: how a conversation’s messages are currently reaching the other side. Status only — the app always picks the path automatically; this just makes the security context legible per chat.

Constants§

DEFAULT_SERVER_URL
huddle 0.8: the canonical centralized server, reachable only as a Tor v3 onion. Baked in so the client connects to the operator’s relay by default; override with the --server <ws-url> CLI flag, disable with --no-server. Reached through the local Tor SOCKS5 proxy.
DEFAULT_TOR_SOCKS
Local Tor SOCKS5 proxy used to dial .onion server URLs.

Functions§

canonical_dm_room_id
huddle 0.7: compute the deterministic room_id for a 1-1 DM between two fingerprints. Both peers, regardless of who calls start_direct first, derive identical IDs — no created_at mixing, no creator-fingerprint asymmetry. The pair is sorted lexicographically so the function is commutative.
normalize_to_fingerprint
huddle 0.5.1: parse input as a huddle ID — either HD--prefixed or a bare 24-char hex run with or without dashes — and return it in the canonical lowercase-dashed form xxxx-xxxx-...-xxxx that matches identity::compute_fingerprint’s output. Returns None for anything that isn’t a syntactic ID (the caller falls back to username lookup).
parse_dial_address
Parse a user-entered dial address into a libp2p Multiaddr. Accepts ip:port, [ipv6]:port, or a raw multiaddr starting with /.
salt_len
Public accessor for the Argon2id salt length used when deriving room passphrase keys. Exists so downstream tooling (status pages, debug CLIs, integration tests) can confirm the expected size without re-importing the constant from crypto::passphrase.