-
Notifications
You must be signed in to change notification settings - Fork 13.6k
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
RemoveIpv4Addr::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
RemoveIpv6Addr::is_unicast_link_local_strict
Ipv6Addr::is_unicast_link_local_strict
#85819RemoveIpv6Addr::is_unicast_site_local
Ipv6Addr::is_unicast_site_local
#85820-
Ipv6Addr::is_unique_local
-
Ipv6Addr::multicast_scope
-
Ipv6Addr::is_ipv4_mapped
-
Ipv6Addr::to_ipv4_mapped
StabilizeIpv6Addr::to_ipv4_mapped
#96906 -
Ipv6Addr::to_canonical
Stabilize{IpAddr, Ipv6Addr}::to_canonical
#115955 -
IpAddr::to_canonical
Stabilize{IpAddr, Ipv6Addr}::to_canonical
#115955
Steps
- Implementation std: Add a
net
module 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_documentation
is not up to dateIpv6Addr::is_documentation
should 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_scope
method that returns aIpv6UnicastScope
enum (Stabilize the "IP" feature #76098 (comment))? - Should we change the behavior of
Ipv6Addr::to_ipv4
to ignore deprecated IPv4-compatible addresses, or deprecate the whole method in favor of the more correctIpv6Addr::to_ipv4_mapped
method (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 22 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.