Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Releases: Rightbracket/peeroxide

peeroxide-v1.3.1

14 May 05:53
ed5d029

Choose a tag to compare

Other

  • peeroxide-cli 0.2.0: chat subsystem, init command, dd v2 tree protocol, progress UX (#15)

Changed

  • Bumped peeroxide-dht dependency from 1.2.0 to 1.3.0. This update adds new public wire-byte counter accessors to HyperDhtHandle and DhtHandle. See peeroxide-dht/CHANGELOG.md for the full list of new additive symbols.

peeroxide-v1.3.0

14 May 04:23
5b11637

Choose a tag to compare

Other

  • peeroxide-cli 0.2.0: chat subsystem, init command, dd v2 tree protocol, progress UX (#15)

Changed

  • Bumped peeroxide-dht dependency from 1.2.0 to 1.3.0. This update adds new public wire-byte counter accessors to HyperDhtHandle and DhtHandle. See peeroxide-dht/CHANGELOG.md for the full list of new additive symbols.

peeroxide-dht-v1.3.1

14 May 05:53
ed5d029

Choose a tag to compare

Added

  • WireCounters struct — provides atomic, shareable counters for tracking total bytes sent and received. Includes new() for initialization and snapshot() for retrieving current totals.
  • Io::wire field — public access to the IO layer's WireCounters.
  • Io::wire_counters() — returns a handle to the IO layer's wire byte counters.
  • DhtHandle::wire_stats() — returns a snapshot of cumulative wire bytes (sent, received) for the DHT node.
  • DhtHandle::wire_counters() — returns a handle to the node-wide WireCounters.
  • HyperDhtHandle::wire_stats() — returns a snapshot of total wire bytes processed by the DHT.
  • HyperDhtHandle::wire_counters() — returns a handle to the shared wire byte counters for the running instance.

peeroxide-dht-v1.3.0

14 May 04:22
5b11637

Choose a tag to compare

Added

  • WireCounters struct — provides atomic, shareable counters for tracking total bytes sent and received. Includes new() for initialization and snapshot() for retrieving current totals.
  • Io::wire field — public access to the IO layer's WireCounters.
  • Io::wire_counters() — returns a handle to the IO layer's wire byte counters.
  • DhtHandle::wire_stats() — returns a snapshot of cumulative wire bytes (sent, received) for the DHT node.
  • DhtHandle::wire_counters() — returns a handle to the node-wide WireCounters.
  • HyperDhtHandle::wire_stats() — returns a snapshot of total wire bytes processed by the DHT.
  • HyperDhtHandle::wire_counters() — returns a handle to the shared wire byte counters for the running instance.

peeroxide-cli-v0.2.1

14 May 05:53
ed5d029

Choose a tag to compare

Other

  • CI release automation fix

peeroxide-cli-v0.2.0

14 May 05:25
9e29f07

Choose a tag to compare

Added

  • peeroxide chat — pseudonymous end-to-end-encrypted P2P chat over the DHT. Subcommands: join, dm, inbox, whoami, profiles {list, create, delete}, friends {list, add, remove, refresh}, nexus. Public channels by name, private channels via --group <salt> or --keyfile; DMs derived from both participants' identity pubkeys plus an ECDH-augmented message key. Interactive TUI with a pinned status bar, multi-line input, slash commands, and a background inbox monitor; line mode is selected automatically when either stdio side is piped. Full reference and protocol spec: docs/src/chat/.

  • peeroxide init — config bootstrap (default mode) and man-page installation (--man-pages [PATH]). New flags: --force, --update, --public, --bootstrap <ADDR> (repeatable), --man-pages [PATH].

  • Tree-indexed dd protocol v2 shipped under wire byte 0x02. Receiver fetches the index tree breadth-first in parallel. Soft depth cap of 4 supports up to ~27 GB at the default 998-byte chunk size.

  • dd put and dd get now display a progress bar by default when stderr is a TTY (indicatif-driven). New flags:

    • --no-progress — suppress the progress bar
    • --json — emit structured start/progress/result/ack/done events as JSON Lines on stdout (schema documented in docs/src/dd/operations.md)

    dd get --json requires --output FILE; without it, flag parsing fails with a clear error (stdout would otherwise conflict with the JSON event stream).

  • dd progress display includes cumulative DHT wire bytes (sent / received) via the new peeroxide-dht 1.3.0 HyperDhtHandle::wire_stats() / wire_counters() API (additive — see peeroxide-dht/CHANGELOG.md for the full new symbol set). Shown in the bar, periodic log, and JSON events.

  • New global -v / --verbose count flag (warn / info / debug; RUST_LOG overrides).

  • New global --no-public flag that excludes the default public HyperDHT bootstrap nodes.

  • Per-mutable_put timeout of 30 seconds in the dd v2 sender. Stall watchdog kicks AIMD concurrency off the floor if no put resolves for 30 seconds.

  • peeroxide-init(1) and peeroxide-chat(1) man pages.

  • New mdBook chapters: docs/src/chat/ (overview, user-guide, interactive-tui, wire-format, protocol, reference), docs/src/init/overview.md, docs/src/concepts/dht-primitives.md (covers immutable_put/mutable_put/announce/lookup, rendezvous pattern, TTL, and 1002-byte size budget).

  • docs/ascii_art.txt banner asset embedded into peeroxide --version via clap long_version, into the crate README, and into the mdBook introduction. -V continues to print the bare semver for scripts.

  • Prebuilt peeroxide binaries distributed via the rightbracket/peeroxide Homebrew tap for macOS (universal Apple Silicon + Intel), Linux x86_64 (glibc), and Linux aarch64 (glibc). No Rust toolchain required; brew install rightbracket/peeroxide/peeroxide auto-taps and installs.

Changed

  • Renamed deaddrop command to dd (short for "Dead Drop").
  • Renamed deaddrop leave subcommand to dd put.
  • Renamed deaddrop pickup subcommand to dd get.
  • dd put defaults to v2 protocol; pass --v1 to force the legacy single-chain protocol.
  • dd get auto-dispatches between v1 (0x01) and v2 (0x02) based on the root record's first byte.
  • Bootstrap resolution: CLI --bootstrap overrides the config file's network.bootstrap (not additive). After base-list selection, --public adds defaults, an empty list auto-fills with defaults, and --no-public removes defaults.
  • The legacy per-chunk status output emitted to stderr during the initial publish/fetch phase (published chunk N/M, fetched data N/M, reassembled X bytes, etc.) is replaced by the new progress UI (bar, periodic log, or JSON events). Scripts that parsed this output should migrate to --json mode.
    Preserved: Refresh, ack ([ack] pickup #N detected), "ack sent", "done", "written to PATH", and other lifecycle messages on stderr are not affected and continue to print as before.
  • In --json mode, all structured events (including the pickup key for dd put) go to stdout (per docs/AGENTS.md convention). The pickup key is delivered as {"type":"result","pickup_key":"..."} rather than a bare stdout line. JSON consumers should parse {"type":"result"} events.
  • Consolidated peeroxide chat man pages into a single peeroxide-chat(1) covering every subcommand and group. Total man-page count is 9 (one per top-level command).
  • All man pages have refreshed long-about prose, examples, exit status, and see-also entries.
  • Rewritten docs/src/dd/ chapters covering both v1 and v2.

Fixed

  • Shared sticky Shutdown primitive across dd put. First SIGINT/SIGTERM cancels gracefully; second exits with code 130.
  • dd v2 need-list watcher now publishes only attempted-and-failed chunk ranges, not all missing positions.

Removed

  • peeroxide config init — replaced by peeroxide init.
  • The legacy --generate-man <DIR> flag — replaced by peeroxide init --man-pages [PATH].
  • The legacy --firewalled global flag — replaced by --no-public.

libudx-v1.3.1

14 May 05:52
ed5d029

Choose a tag to compare

Other

  • release (#20)

libudx-v1.3.0

14 May 04:22
5b11637

Choose a tag to compare

Changed

  • UdxSocket is now a cheap-clone Arc handle (UdxSocketInner holds all state internally). All clones share the same underlying socket; the recv loop is only torn down when the last clone is dropped. UdxSocket::close(self) consuming signature is unchanged. (#12)

peeroxide-cli-v0.1.0

13 May 21:53
9330aae

Choose a tag to compare

peeroxide-cli 0.1.0

peeroxide-v1.2.0

01 May 03:11
1deccb9

Choose a tag to compare

Added

  • SwarmHandle::dht() — exposes the underlying HyperDhtHandle for low-level DHT operations such as mutable/immutable record storage and manual peer lookup.
  • SwarmHandle::key_pair() — exposes the Ed25519 key pair identifying this swarm node, for use with DHT mutable records or other identity operations.
  • Re-exported HyperDhtHandle, MutablePutResult, MutableGetResult, and ImmutablePutResult from the peeroxide crate root, so callers no longer need to depend on peeroxide-dht directly for common DHT storage types.

Changed

  • Swarm nodes now self-announce under hash(publicKey) during each discovery refresh. This populates ForwardEntry records on the nodes closest to the peer's public key, enabling PEER_HANDSHAKE routing to work correctly — matching the behaviour of the Node.js reference implementation.
  • Server registrations are now cleaned up properly on leave() (when the last server topic is left), on destroy(), and when the swarm handle is dropped. Previously, ForwardEntry records for the local server could persist in the router until TTL expiry.
  • Incoming server connections now reuse the DHT's bound listen socket for the UDX stream, rather than creating a new socket. This ensures streams arrive on the same port that remote peers have on record, fixing connection establishment in NAT environments.
  • Handshake replies no longer echo the client's address back in peer_address; the field is now correctly set to None in the reply, matching the wire protocol.