RUST-REF-006 - Consolidate Rust NAT and runtime safety internals
Summary
Remove obsolete NAT backends now that MiniUPnPc is the sole supported provider,
then harden synchronous runtime state and native-code boundaries without
changing eD2K/Kad behavior.
Scope
- Remove the deprecated
rupnp backend, its ssdp-client dependency, personal
Git patches, and the unimplemented upnp_igd stub.
- Keep a bounded configuration migration path that accepts MiniUPnPc and rejects
retired backend identifiers with a clear error.
- Adopt non-poisoning
parking_lot::Mutex for short synchronous runtime state;
keep asynchronous locks only where a guard must cross .await.
- Fail closed explicitly for security-sensitive state instead of relying on
mutex poisoning.
- Audit every unsafe boundary, especially
Gateway: Send, and enable
unsafe_op_in_unsafe_fn plus documented-unsafe-block enforcement.
- Narrow broad dead-code and unused-import suppressions after reference and
feature-matrix proof.
Acceptance Criteria
Validation
- NAT provider unit tests plus MiniUPnPc discovery/map/release coverage.
- Supported workspace Rust format, Clippy, build, tests, Kad swarm, and VPN leak
gates.
RUST-REF-006 - Consolidate Rust NAT and runtime safety internals
Summary
Remove obsolete NAT backends now that MiniUPnPc is the sole supported provider,
then harden synchronous runtime state and native-code boundaries without
changing eD2K/Kad behavior.
Scope
rupnpbackend, itsssdp-clientdependency, personalGit patches, and the unimplemented
upnp_igdstub.retired backend identifiers with a clear error.
parking_lot::Mutexfor short synchronous runtime state;keep asynchronous locks only where a guard must cross
.await.mutex poisoning.
Gateway: Send, and enableunsafe_op_in_unsafe_fnplus documented-unsafe-block enforcement.feature-matrix proof.
Acceptance Criteria
rupnp,ssdp-client, and the unimplemented IGD provider are absent fromsource, manifests, and the lockfile.
Validation
gates.