Skip to content

v0.4.0

Latest

Choose a tag to compare

@github-actions github-actions released this 12 Apr 09:07

This release stabilizes the SSU2 transport and brings IPv6 support to both NTCP2 (#322) and SSU2 (#323). Simplified bandwidth metering has been implemented (#324) and the router configuration now supports specifying a bandwidth limit and a share percentage. The defaults are 1 MB/s and 90% (router class P).

PQ hybrid support has been implemented for destinations (#329), NTCP2 (#331) and SSU2 (#334). The crypto used by destinations can be controlled with i2cp.leaseSetEncType (default is 6,4). [ntcp2] and [ssu2] have ml_kem and disable_pq options which allow controlling the PQ-related behavior of the transports. See router configuration documentation for NTCP2 and SSU2 for more details.

Added

  • ssu2: Implement peer test protocol (#266)
  • sam: Add support for QUIT/EXIT/STOP (#268)
  • cli: Implement RouterCommand::RouterUiDev (#301)
  • ssu2: Introduce RelayManager (#306)
  • ssu2: Implement support for fragmented RouterInfos (#318)
  • ssu2: Add support for RouterInfo compression (#319)
  • ntcp2: Implement idle timeouts (#321)
  • ntcp2: Add IPv6 support (#322)
  • ssu2: Add IPv6 support (#323)
  • core: Implement simple bandwidth metering (#324)
  • ssu2: Implement connection migration (#327)
  • session: Add support for PQ Hybrid ECIES-x25519-AEAD-Ratchet (#329)
  • ntcp2: Add support for PQ hybrid connections (#331)
  • ssu2: Add support for PQ hybrid connections (#334)
  • cli/socks: Add outproxy support (#335)

Changed

  • core: Introduce SubsystemManager (#247)
  • core: Add more metrics (#251)
  • ssu2: Check clock skew (#252)
  • docs: Improve router configuration documentation (#256)
  • ssu2: Share R::UdpSocket between sessions (#257)
  • streaming: Make opening a stream more aggressive (#262)
  • core: Address warning about private macro usage (#270)
  • core: Expose I2CP port in ProtocolAddressInfo (#271)
  • ssu2: Refactor TransmissionManager (#274)
  • transit: Close tunnels which have no activity after 2 minutes (#275)
  • docs: Improve docs (#280)
  • ci: Use nextest (#281)
  • core: Decrease the time it takes to run tests by using tokio::test's start_paused (#282)
  • Be precise when marking tests with start_paused, make investigation for #288 easier (#289)
  • ssu2: Refactor Detector (#290)
  • cli: Specify which client tunnel exited (#296)
  • cli/http: Allow specifying HTTP Proxy tunnel lengths (#297)
  • ssu2: Add support for parallel peer tests (#300)
  • core: Use userspace CRNG seeded by a system RNG (#302)
  • core: Add fuzzers for SAM, I2CP, SSU2 and NTCP2 (#307)
  • primitives: Refactor RouterAddress (#309)
  • ssu2: Request introducers if the router is firewalled (#313)
  • transport: Add introducer support to TransportManager (#314)
  • ssu2: Implement outbound relay support (#315)
  • transport: Refactor firewall/external address handling (#316)
  • transit: Remove total_bandwidth (#317)
  • cli/ui: Upgrade iced (#320)
  • transport: Add more metrics (#326)
  • cli/http: Allow specifying port for HTTP outproxy (#332)
  • cli: Enable SSU2 by default (#336)
  • docs: Update documentation (#337)

Fixed

  • ssu2: Terminate inbound connection if outbound connection is pending (#249)
  • transport: Reject dial requests if the router is already connected (#250)
  • ssu2: Inform transport manager when a connection has been terminated (#255)
  • streaming: Resend reply SYN if it doesn't get acknowledged (#259)
  • i2cp: Treat options field of GetDate as optional (#261)
  • core: Fix fuzz tests (#269)
  • tunnel: Fix flaky exploratory_tunnel_test (#276)
  • transit: Improve transit tunnel cleanup logic (#279)
  • cli: Fix configuration tests (#298)
  • docs: Add Runtime trait parameter to examples (#303)
  • cli: Decrease mock update interval to 250 milliseconds (#305)
  • cli/ui: Improve subscription address validation (#311)
  • util: Use correct protocol for SSU2 NAT-PMP port mapping (#312)
  • core: Fix bugs (#328)
  • tunnel: Return random inbound/outbound tunnel (#330)
  • cli: Do not add duplicate entries to addres book (#333)

Thanks to @bheesham, @hizani and @Shrike05 for their contributions!