Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
networkframework-rs
Safe Rust bindings for Apple's
Network.framework,
the modern (10.14+) replacement for BSD sockets / CFNetwork / NSStream.
v0.8 covers:
TcpClient,TcpListener,UdpClient,QuicConnection,WebSocket,Browser, andPathMonitor.ConnectionParametersfor advanced protocol-stack configuration.ContentContextfor per-message priority, expiration, antecedents, and protocol metadata.- Custom protocol framers via
FramerDefinition,Framer,FramerContext, andFramerMessage. ConnectionGroup/ConnectionGroupDescriptorfor multicast and multiplex groups.- Interface enumeration via
list_interfaces()andPathMonitor::list_interfaces(). PrivacyContext,ProxyConfig, andResolverConfigfor proxy and encrypted-DNS policy.
Built using a thin C shim around Apple's block-based nw_* C API; no
Objective-C runtime, no Swift bridge required.
Why not just use std::net?
std::net calls BSD sockets directly, which works but bypasses macOS's
modern network stack (cellular fallback, Wi-Fi assist, Network
Extensions, secure DNS, multipath, on-device proxying). Apps shipped
via the Mac App Store must use Network.framework for many of those
behaviours. This crate provides a tiny safe surface for that.
Remaining gaps
The crate now covers most publicly useful Network.framework surfaces. Remaining
work is focused on deeper protocol metadata helpers, richer connection-group
operations such as extraction / reinsertion, and additional low-level protocol
options.
Quick start
use TcpClient;
let client = connect?;
client.send?;
let response = client.receive?;
println!;
# Ok::
Included examples
cargo run --example framer_length_prefixcargo run --example interface_listcargo run --example connection_groupcargo run --example 03_udp_and_path