v1.0.0-rc.0

knavesec/CredMasterv1.0.0-rc.0May 7, 2026by github-actions[bot]

AI Summary

This major release candidate introduces extensive breaking changes including API redesigns, refactoring of connection handling, and updates to post-quantum key exchange support.

Key Highlights

  • Refactoring of ConnectionInfo to WeakConnectionHandle
  • Redesign of path observation API
  • Updates to post-quantum key exchange
  • Removal of deprecated reexports

Breaking Changes

  • Replace Incoming::local_ip with Incoming::local_addr
  • Update QNT config defaults
  • Support setting auth tokens for relays
  • Replace ConnectionInfo with WeakConnectionHandle
  • Make Source private
  • Remove portmapper metrics from public API
  • Improve feature-gating for unstable-custom-transports
  • Redesign path observation API
  • Reduce public API surface
  • Do not depend on tokio-rustls-acme in public API
  • Make AccessConfig non-exhaustive
  • Mark more items as non-exhaustive

New Features

  • Implement From<&[u8; 32]> for SecretKey
  • Add cache metrics to dns-server

Full Release Notes

### โ›ฐ๏ธ  Features

- *(iroh)* [**breaking**] Replace Incoming::local_ip with Incoming::local_addr ([#4182](https://github.com/n0-computer/iroh/issues/4182)) - ([5dc7160](https://github.com/n0-computer/iroh/commit/5dc71602e6875444bec3db16641f3528ceb58638))
- *(iroh)* [**breaking**] Update QNT config defaults & update to latest noq main ([#4213](https://github.com/n0-computer/iroh/issues/4213)) - ([00f961b](https://github.com/n0-computer/iroh/commit/00f961bb00f14775feb2907c8712ca107c1c3684))
- *(iroh, iroh-relay)* [**breaking**] Support setting auth tokens for relays ([#4205](https://github.com/n0-computer/iroh/issues/4205)) - ([1dc6fe8](https://github.com/n0-computer/iroh/commit/1dc6fe837af1f8e0bd2360a7330632ddd2f7a0d0))
- *(iroh-base)* Impl From<&[u8; 32]> for SecretKey ([#4181](https://github.com/n0-computer/iroh/issues/4181)) - ([80dfb19](https://github.com/n0-computer/iroh/commit/80dfb1938371a3a3679b1dbcd7080e3773b4c74e))
- *(iroh-relay)* [**breaking**] Pass a ClientRequest to AccessConfig and let the client set query params ([#4207](https://github.com/n0-computer/iroh/issues/4207)) - ([7bee17b](https://github.com/n0-computer/iroh/commit/7bee17b4fb4a4d0d1feb9a1116749ef2393a1ae4))
- *(metrics)* Add cache metrics to dns-server ([#3800](https://github.com/n0-computer/iroh/issues/3800)) - ([eb67669](https://github.com/n0-computer/iroh/commit/eb67669ea64038d5230087d0156974a297d35e27))
- [**breaking**] Update to 1.0.0-rc.0 deps ([#4237](https://github.com/n0-computer/iroh/issues/4237)) - ([20350e9](https://github.com/n0-computer/iroh/commit/20350e9bf6f3dea8da37aa148d79a1d77bd3c856))

### ๐Ÿ› Bug Fixes

- *(iroh)* Don't abort connection attempts when an empty `EndpointAddr` is added concurrently ([#4177](https://github.com/n0-computer/iroh/issues/4177)) - ([a1fa579](https://github.com/n0-computer/iroh/commit/a1fa579039145de344f530848b01fda27aff0288))
- *(iroh)* [**breaking**] Remove noq Written reexport ([#4236](https://github.com/n0-computer/iroh/issues/4236)) - ([7d3e485](https://github.com/n0-computer/iroh/commit/7d3e4857ee134a259d7b668560f6303dea1def16))
- *(iroh-dns)* Document how to use iroh on Android and run tests in Android emulator ([#4183](https://github.com/n0-computer/iroh/issues/4183)) - ([54e4a29](https://github.com/n0-computer/iroh/commit/54e4a291d26f9e3d1e340927294a3c895af55ffe))
- Protect against division by zero in process_datagram ([#4178](https://github.com/n0-computer/iroh/issues/4178)) - ([db1b335](https://github.com/n0-computer/iroh/commit/db1b3351469291020efb892049eb30479117b7cc))

### ๐Ÿšœ Refactor

- *(iroh)* [**breaking**] Replace ConnectionInfo with WeakConnectionHandle ([#4189](https://github.com/n0-computer/iroh/issues/4189)) - ([9bfc8da](https://github.com/n0-computer/iroh/commit/9bfc8da3ca04cc19ce87670da0f7c49d40fce593))
- *(iroh)* [**breaking**] Make `Source` private and trim its variants ([#4227](https://github.com/n0-computer/iroh/issues/4227)) - ([927addf](https://github.com/n0-computer/iroh/commit/927addfdb3613804c66598e3c41c508aeec0c71d))
- *(iroh)* Express IPv6 ULA constants in hex ([#4225](https://github.com/n0-computer/iroh/issues/4225)) - ([cb8775c](https://github.com/n0-computer/iroh/commit/cb8775cbf6b6ad644ec8e9d449b135fcdbb46e1b))
- *(iroh)* Adapt for noq::Closed return type of Connection::closed ([#4229](https://github.com/n0-computer/iroh/issues/4229)) - ([217ec7c](https://github.com/n0-computer/iroh/commit/217ec7cc3b83f1b3d8de3f1cc3e0e8ec5e0ea824))
- *(iroh)* [**breaking**] Remove portmapper metrics from public API ([#4235](https://github.com/n0-computer/iroh/issues/4235)) - ([7955bea](https://github.com/n0-computer/iroh/commit/7955bea420a13ce2bf2c2f402deb6a701bacd46d))
- *(iroh)* Apply path status for path selection ([#4233](https://github.com/n0-computer/iroh/issues/4233)) - ([63ed351](https://github.com/n0-computer/iroh/commit/63ed3517066c74d52bd64d9ae9a02add22a016a5))
- *(iroh)* [**breaking**] Improve feature-gating for `unstable-custom-transports` ([#4228](https://github.com/n0-computer/iroh/issues/4228)) - ([f246242](https://github.com/n0-computer/iroh/commit/f246242ff1e6cc8cb865bfb5b8389b6f1ff0158f))
- *(iroh)* [**breaking**] Redesign path observation API ([#4188](https://github.com/n0-computer/iroh/issues/4188)) - ([3e82de5](https://github.com/n0-computer/iroh/commit/3e82de5088391fb00c7b645912861ebfc611ae34))
- *(iroh-dns-server)* [**breaking**] Reduce public API surface, improve docs, cleanup visibilities ([#4160](https://github.com/n0-computer/iroh/issues/4160)) - ([4ed44b7](https://github.com/n0-computer/iroh/commit/4ed44b7e7c9f0f0d0c420df99227dcc6e4d56850))
- *(iroh-relay)* [**breaking**] Do not depend on `tokio-rustls-acme` in public API ([#4166](https://github.com/n0-computer/iroh/issues/4166)) - ([5a984c6](https://github.com/n0-computer/iroh/commit/5a984c6ab4476c9c17ba1bd4d680b10b506e600d))
- *(iroh-relay)* Make MaybeTlsStream public again ([#4193](https://github.com/n0-computer/iroh/issues/4193)) - ([89ad5d8](https://github.com/n0-computer/iroh/commit/89ad5d89a22122ebc53d2166654d00062ee75b98))
- *(iroh-relay)* [**breaking**] Make `AccessConfig` non-exhaustive ([#4190](https://github.com/n0-computer/iroh/issues/4190)) - ([d636e54](https://github.com/n0-computer/iroh/commit/d636e54755622723e76ab461796cc7093a081b38))
- Prefer release assert for locations where a bounds check follows ([#4214](https://github.com/n0-computer/iroh/issues/4214)) - ([eb588ec](https://github.com/n0-computer/iroh/commit/eb588eccc876bc5b9dba5750d0bd0cc7b6261393))
- Prefer loop over zip ([#4215](https://github.com/n0-computer/iroh/issues/4215)) - ([c953d9b](https://github.com/n0-computer/iroh/commit/c953d9b3982aa08f517673ad7b717823cf248b13))
- [**breaking**] Mark more items as non-exhaustive ([#4226](https://github.com/n0-computer/iroh/issues/4226)) - ([eebb60f](https://github.com/n0-computer/iroh/commit/eebb60fef928d822a822adecdea092f2eaa00053))
- Remove obsolete fn transport_bias from endpoint builder. ([#4234](https://github.com/n0-computer/iroh/issues/4234)) - ([dd418df](https://github.com/n0-computer/iroh/commit/dd418df0920b6bf154869f63714453a7a23e3092))

### ๐Ÿ“š Documentation

- Add post quantum key exchange examples ([#4196](https://github.com/n0-computer/iroh/issues/4196)) - ([872d8ee](https://github.com/n0-computer/iroh/commit/872d8ee931f16708f0e8e32a80c9eaaf4127037f))

### ๐Ÿงช Testing

- *(iroh-relay)* Integration tests for embedding the relay ([#4206](https://github.com/n0-computer/iroh/issues/4206)) - ([88c9eed](https://github.com/n0-computer/iroh/commit/88c9eedd0fe08690e0d4baf9cbbab02d30b98a78))

### โš™๏ธ Miscellaneous Tasks

- *(ci)* Fix sccache for netsim ([#4176](https://github.com/n0-computer/iroh/issues/4176)) - ([4f22f1a](https://github.com/n0-computer/iroh/commit/4f22f1a53524a8239eba3d20c8d2d3d8a07da730))
- *(ci)* Fix musl/gnu build setup ([#4184](https://github.com/n0-computer/iroh/issues/4184)) - ([e95ac06](https://github.com/n0-computer/iroh/commit/e95ac068a3ffbcce18623ece739f4e7d952285b8))
- *(ci)* Make sccache fail gracefully ([#4208](https://github.com/n0-computer/iroh/issues/4208)) - ([a187130](https://github.com/n0-computer/iroh/commit/a1871300fc563202f38efe6d7ea85864d83c239f))
- *(ci)* Enforce external type allow-list in public API ([#4204](https://github.com/n0-computer/iroh/issues/4204)) - ([3e0c25f](https://github.com/n0-computer/iroh/commit/3e0c25f252e89a563a1d97f0f35b915b7c360010))
- *(ci)* Fix docker releases and musl linking ([#4230](https://github.com/n0-computer/iroh/issues/4230)) - ([5f578da](https://github.com/n0-computer/iroh/commit/5f578daac1f3c0a6149b4a83732aada7aecebc32))
- Fixup relative deps - ([1d0ff85](https://github.com/n0-computer/iroh/commit/1d0ff852aad08bc4157988c040df7793ffef4f26))

### Deps

- Pin pkcs8 and der ([#4197](https://github.com/n0-computer/iroh/issues/4197)) - ([36c5c6d](https://github.com/n0-computer/iroh/commit/36c5c6d1b7d96cbbb1373b1ee840d87062a19260))