- 
                Notifications
    You must be signed in to change notification settings 
- Fork 13.9k
Open
Labels
A-ioArea: `std::io`, `std::fs`, `std::net` and `std::path`Area: `std::io`, `std::fs`, `std::net` and `std::path`B-unstableBlocker: Implemented in the nightly compiler and unstable.Blocker: Implemented in the nightly compiler and unstable.C-tracking-issueCategory: An issue tracking the progress of sth. like the implementation of an RFCCategory: An issue tracking the progress of sth. like the implementation of an RFCLibs-TrackedLibs issues that are tracked on the team's project board.Libs issues that are tracked on the team's project board.T-libs-apiRelevant to the library API team, which will review and decide on the PR/issue.Relevant to the library API team, which will review and decide on the PR/issue.
Description
The below is a list of methods left to be stabilized under the ip feature. The path forward today is unclear; if you'd like to push through any method on here the libs team is interested in a PR with links to the associated RFCs or other official documentation. Let us know!
-  Ipv4Addr::is_shared
- Ipv4Addr::is_ietf_protocol_assignment- Ipv4Addr::is_ietf_protocol_assignment#86439
-  Ipv4Addr::is_benchmarking
-  Ipv4Addr::is_reserved
-  Ipv6Addr::is_unicast_global
-  Ipv6Addr::is_unicast_link_local
- Ipv6Addr::is_unicast_link_local_strict- Ipv6Addr::is_unicast_link_local_strict#85819
- Ipv6Addr::is_unicast_site_local- Ipv6Addr::is_unicast_site_local#85820
-  Ipv6Addr::is_unique_local
-  Ipv6Addr::multicast_scope
-  Ipv6Addr::is_ipv4_mapped
-  Ipv6Addr::to_ipv4_mappedStabilizeIpv6Addr::to_ipv4_mapped#96906
-  Ipv6Addr::to_canonicalStabilize{IpAddr, Ipv6Addr}::to_canonical#115955
-  IpAddr::to_canonicalStabilize{IpAddr, Ipv6Addr}::to_canonical#115955
Steps
-  Implementation std: Add a netmodule for TCP/UDP #22015
- Implementation Add IpAddr common methods #34694
- Stabilization attempt stabilize the "ip" feature #66584
- Stabilization attempt Stabilize the "IP" feature #76098
- Stabilization PR(s)
Subsets of the listed methods can be stabilized, rather than attempting to stabilize everything at once.
Unresolved Questions
-  is_documentationis not up to dateIpv6Addr::is_documentationshould be expanded to include RFC 9637's3ffff::/20#137821
- Differences between Rust and other languages Stabilize the "IP" feature #76098 (comment)
- More specific case of the above: does the IPv6 unicast interface do what we expect? IPv6 Unicast Interface #85604
- Do the provided methods pass ipcheck? https://github.com/rust-lang/libs-team/tree/93b78eef2e0d455a3e69c05333cd8f276e4e95f1/tools/ipcheck. Last known run: Stabilize the "IP" feature #76098 (comment)
From @KodrAus in #76098 (comment):
-  Should we replace the Ipv6Addr::is_unicast_*methods with aIpv6Addr::unicast_scopemethod that returns aIpv6UnicastScopeenum (Stabilize the "IP" feature #76098 (comment))?
-  Should we change the behavior of Ipv6Addr::to_ipv4to ignore deprecated IPv4-compatible addresses, or deprecate the whole method in favor of the more correctIpv6Addr::to_ipv4_mappedmethod (Stabilize the "IP" feature #76098 (comment))?
-  Are we ok with Ipv6Addr::is_*methods now properly considering mapped (non-deprecated) IPv4 addresses? I'd personally be comfortable considering the old behavior a bug.
- Are there any behavioral differences between other language implementations that we should investigate? (Stabilize the "IP" feature #76098 (comment))
seamlik, dani-garcia, nazar-pc, stanislav-tkach, JJJollyjim and 23 moreemhane
Metadata
Metadata
Assignees
Labels
A-ioArea: `std::io`, `std::fs`, `std::net` and `std::path`Area: `std::io`, `std::fs`, `std::net` and `std::path`B-unstableBlocker: Implemented in the nightly compiler and unstable.Blocker: Implemented in the nightly compiler and unstable.C-tracking-issueCategory: An issue tracking the progress of sth. like the implementation of an RFCCategory: An issue tracking the progress of sth. like the implementation of an RFCLibs-TrackedLibs issues that are tracked on the team's project board.Libs issues that are tracked on the team's project board.T-libs-apiRelevant to the library API team, which will review and decide on the PR/issue.Relevant to the library API team, which will review and decide on the PR/issue.