smoltcp-rs/smoltcp

a smol tcp/ip stack

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 54 minutes ago
Added to GitGenius on September 15th, 2026
Created on December 2nd, 2016
Open Issues & Pull Requests: 109 (+0)
GitHub issues: Enabled
Number of forks: 566
Total Stargazers: 4,602 (+0)
Total Subscribers: 61 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 22.4 hours
Mean response time: 68.2 days
90th percentile: 172.8 days
Tracked items: 63

Most active contributors

Sign in to see contributor activity.

How this project is maintained

100% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Three people close 68% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 38
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 565 days
Stale 30+ days: 36
Stale 90+ days: 30

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • kind/bug (5)
  • proto/tcp (5)
  • kind/feature (3)
  • kind/question (3)
  • proto/dns (3)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

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.