smoltcp is a standalone TCP/IP stack written in Rust for bare-metal and real-time embedded systems.
The project addresses the need for a lightweight, deterministic networking layer in resource-constrained environments where pulling in a full operating system is impractical. It takes an event-driven approach with no heap allocation requirements, allowing developers to control memory layout entirely at compile time. The stack implements core protocols across multiple layers: Ethernet, IPv4, IPv6, and 6LoWPAN at the media and IP layers; ICMP and ICMPv6 for diagnostics; UDP and TCP for transport; and IGMP for multicast. The design explicitly prioritizes simplicity and robustness over performance tricks, avoiding complicated compile-time computations even when that means accepting some performance cost.
The tool suits projects targeting microcontrollers, FPGAs, and other embedded systems where standard networking stacks are too heavy or their memory requirements unpredictable. It works well for applications needing deterministic behavior and full control over resource allocation. Developers should be aware that the stack omits many features found in production stacks: IPv4 options, 802.1Q VLANs, jumbo frames, and various ICMP message types are not implemented. The README does not position the tool against specific alternatives, so no comparison is made. The project achieves gigabit-range throughput in loopback testing against the Linux stack and compiles on stable Rust.
Development activity shows consistent engagement with protocol implementation and refinement. The project maintains extensive documentation covering both implemented and deliberately omitted features, setting clear expectations for adopters. Work spans multiple protocol layers and mediums, indicating sustained effort to broaden the stack's applicability. The codebase remains actively maintained with attention to both new capabilities and the stability of existing ones.