finds.dev← search

// the find

smoltcp-rs/smoltcp

★ 4,483 · Rust · 0BSD · updated Apr 2026

a smol tcp/ip stack

smoltcp is a no-std TCP/IP stack written in Rust, designed for bare-metal and embedded targets. It runs without heap allocation, supports Ethernet/IPv4/IPv6/6LoWPAN, and ships with CUBIC and Reno congestion control. If you're writing firmware or an RTOS-less network driver and don't want to port lwIP, this is the serious alternative.

Zero heap allocation by design — all buffers are caller-supplied, which means you control memory layout on constrained hardware. The wire module is a clean zero-copy packet parsing layer that's useful independently of the full stack. Throughput benchmarks against the Linux loopback hit multiple Gbps, so the abstraction cost is real but not embarrassing. The feature-flag system lets you strip the binary down to exactly the protocols your target needs.

No SACK (selective acknowledgements) and no silly-window syndrome avoidance means TCP performance degrades badly on lossy or high-latency links — this is a known gap, not an edge case. The neighbor cache, route table, and multicast group counts are compile-time constants with tiny defaults (4, 2, 4) that silently drop traffic if you exceed them; you'll burn time debugging before you find the env-var knobs. DNS support is minimal — one result per query by default, one server — barely usable for anything beyond simple embedded lookups. The hosted examples only work on Linux, so Windows and macOS developers can't easily experiment with the tap interface setup.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →