Skip to content

feat(std): overhaul portable networking through phase 2 - #438

Merged
LunaStev merged 6 commits into
wavefnd:masterfrom
LunaStev:feat/std-net-overhaul
Aug 30, 2026
Merged

feat(std): overhaul portable networking through phase 2#438
LunaStev merged 6 commits into
wavefnd:masterfrom
LunaStev:feat/std-net-overhaul

Conversation

@LunaStev

Copy link
Copy Markdown
Member

Summary

  • add generic struct literal parsing, monomorphization, imported-name rewriting, and LLVM lowering
  • rebuild std::net around portable address, error, ownership, partial-I/O, timeout, and socket-option contracts
  • add IPv6 TCP/UDP, hostname resolution, connected UDP, broadcast, and IPv4/IPv6 multicast
  • add Unix-domain streams, interface enumeration, scatter/gather I/O, and portable readiness events
  • select native socket ABI providers for Linux amd64/arm64/riscv64, macOS amd64/arm64, Windows amd64/arm64, and FreeBSD amd64
  • add runnable standard-library examples, an eight-target IR matrix, and RISC-V QEMU networking coverage

Event backends

  • Linux: epoll
  • macOS and FreeBSD: kqueue
  • Windows: bounded WSAPoll for the synchronous readiness API

IOCP remains separate until the async runtime defines completion ownership, buffer lifetime, and cancellation. Windows Unix sockets and interface enumeration return explicit unsupported errors instead of pretending to provide a portable implementation.

Validation

  • cargo fmt --all --check
  • cargo check --locked --jobs 2
  • RUSTDOCFLAGS='-D warnings' cargo doc --locked --no-deps --jobs 2
  • cargo clippy --locked --all-targets --jobs 2 -- -D warnings
  • cargo test --locked --all-targets --jobs 2 — 45 passed
  • Wave corpus — 211 passed
  • standard-library examples — 20 passed
  • Wave end-to-end suite — 114 passed, 8 architecture/environment skips, 0 failed
  • standard-library policy, workflow YAML, and git diff --check

Closes #433

Related to #375, #379, and #380.

@LunaStev
LunaStev merged commit fd44c5c into wavefnd:master Aug 30, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add IPv6 address and TCP/UDP support to std::net

1 participant