awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
smoltcp-rs avatar

smoltcp-rs/smoltcp

0
View on GitHub↗
4,496 stars·532 forks·Rust·0BSD·16 views

Smoltcp

smoltcp is a standalone TCP/IP network stack written in Rust, designed specifically for bare-metal and embedded systems. It provides a memory-safe implementation of the internet protocol suite that operates without requiring dynamic heap allocation.

The project is distinguished by its heap-less memory management, using fixed-size buffers and manually allocated memory to ensure deterministic performance. It employs zero-copy packet processing and an interface-based hardware abstraction to decouple the network stack from physical hardware.

The stack covers a broad range of networking capabilities, including connection-oriented TCP streams with congestion control and connectionless UDP datagrams for both IPv4 and IPv6. It supports Ethernet link-layer management, ICMP diagnostic messaging, CIDR-based routing, and specialized 6LoWPAN wireless networking with header compression for low-power environments.

The library includes utilities for network interface administration, raw packet capture, and configurable resource limits to fit the constraints of specific hardware.

Features

  • Bare-Metal Network Stacks - Provides a complete TCP/IP stack for systems without an operating system or dynamic heap memory.
  • TCP/IP Stacks - Provides a memory-safe TCP/IP stack for bare-metal systems without requiring a heap allocator.
  • TCP Connection Management - Implements socket buffer management to coordinate data streams between clients and servers.
  • Connection Lifecycle State Machines - Implements the TCP connection lifecycle using a formal finite state machine for handshakes and congestion control.
  • Ethernet Frame Processing - Implements processing for Ethernet II frames, supporting unicast, broadcast, multicast, and ARP.
  • Ethernet Frame Switching - Handles Ethernet II frame routing for various traffic types and manages ARP entries.
  • Network Stacks - Provides a standalone implementation of layered communication protocols for customized packet routing and processing.
  • Socket Networking - Manages multiple network sockets within a single set to coordinate data flow.
  • TCP Connection Lifecycles - Handles the full TCP connection lifecycle, from initiation to termination and byte stream reception.
  • TCP Client Connections - Enables establishing TCP connections to remote addresses to exchange data streams.
  • TCP Connection Operations - Provides support for window scaling, congestion control, and segment reassembly during active socket operations.
  • TCP Socket Programming - Implements a complete TCP socket system for reliable connection-oriented byte stream exchange.
  • IPv6 Routing Rules - Routes IPv6 traffic via CIDR tables and processes hop-by-hop headers.
  • UDP Datagram Transfers - Transmits connectionless data packets over IPv4 and IPv6 with automatic checksum generation.
  • UDP Endpoint Implementations - Provides the implementation for creating UDP endpoints to exchange connectionless data packets via port binding.
  • IPv4 and IPv6 Unicast and Multicast Routing - Directs outgoing IPv4 and IPv6 packets using default gateways and CIDR route tables.
  • Bare-Metal Runtimes - Provides a networking implementation for embedded systems that operates without requiring dynamic heap allocation.
  • Fixed-Size Buffer Management - Provides a heap-less memory model using fixed-size buffers to ensure deterministic performance on bare-metal systems.
  • Rust Network Frameworks - Provides a memory-safe Rust library for managing network interfaces, sockets, and packet routing.
  • Deterministic Network Memory Management - Ensures predictable performance in real-time systems by using fixed memory allocations for network sockets.
  • 6LoWPAN Networking - Routes IPv6 over low-power wireless networks using header compression and packet fragmentation.
  • Low-Power Wireless Connectivity - Supports IPv6 routing over constrained wireless networks using header compression and fragmentation.
  • Interface Route Definitions - Enables assigning IP addresses and defining default IPv4 and IPv6 routes for the device.
  • ICMP Diagnostic Utilities - The project supports sending ICMPv4 and ICMPv6 echo requests to a remote address to verify connectivity and measure round-trip time.
  • ICMPv4 Message Processing - The project responds to echo requests and monitors sockets for port unreachable or specific identifier messages.
  • ICMPv6 Message Processing - The project responds to echo requests and validates header checksums for IPv6 diagnostic messages.
  • Socket Buffer Management - Enables the allocation of fixed-size transmit and receive buffers to manage data flow without a dynamic heap.
  • Neighbor Discovery Protocol - Implements Neighbor Advertisement and Router Solicitation messages for IPv6 connectivity.
  • Interface-Based IP Assignments - Configures IP addresses and routing tables by mapping them to specific hardware MAC addresses.
  • Network Control Messaging - Generates and responds to ICMPv4 and ICMPv6 control messages such as echo requests.
  • Network Data Compression - Implements 6LoWPAN header compression and decompression for UDP and extension headers.
  • Zero-Copy Packet Processing - Processes network frames by referencing memory slices directly to avoid data duplication during parsing.
  • Resource Limit Configuration - Allows tuning of memory and resource limits for interface addresses and buffer sizes.
  • Protocol Abstraction Layers - Employs a layered architecture to route packets sequentially through Ethernet, IP, and Transport layers.
  • CIDR Route Tables - Implements routing of outgoing traffic by matching destination addresses against CIDR network prefixes.
  • Hardware Abstraction Layers - Uses generic traits to provide a consistent API that decouples the network stack from physical hardware implementations.
  • Network Interface Configurators - Provides utilities for configuring IP addresses and TCP/IP properties on network interfaces.

Star history

Star history chart for smoltcp-rs/smoltcpStar history chart for smoltcp-rs/smoltcp

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Projects sharing features with Smoltcp

These projects share indexed features with Smoltcp. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • m-labs/smoltcpm-labs avatar

    m-labs/smoltcp

    4,492View on GitHub↗

    smoltcp is a TCP/IP stack and network protocol implementation designed for resource-constrained environments and bare-metal hardware. It provides a set of socket interfaces for managing reliable TCP stream connections and connectionless UDP datagrams without relying on a standard library. The project utilizes a fixed memory layout and static memory allocation to manage network state and process packets without a dynamic memory allocator. It includes specialized capabilities for low-power wireless networks, such as header compression and fragmentation for 6LoWPAN. The stack covers the data li

    Rust
    View on GitHub↗4,492
  • riba2534/tcp-ip-networknoteriba2534 avatar

    riba2534/TCP-IP-NetworkNote

    2,505View on GitHub↗

    TCP-IP-NetworkNote is a comprehensive technical reference and guide for implementing network communication using TCP and UDP sockets in C and C++. It provides a detailed manual for using the POSIX socket API and covers the implementation of network protocols, synchronous and asynchronous I/O patterns, and concurrent programming models. The project is distinguished by its focus on cross-platform networking, offering a detailed comparison of socket implementation details and adaptation utilities between Linux and Windows Winsock environments. It specifically addresses the differences in header

    C
    View on GitHub↗2,505
  • codeplea/hands-on-network-programming-with-ccodeplea avatar

    codeplea/Hands-On-Network-Programming-with-C

    701View on GitHub↗

    This project serves as a comprehensive tutorial and technical resource for developing network applications in the C programming language. It focuses on the practical application of the Berkeley socket interface, guiding users through the implementation of low-level network protocols and the management of data transmission across both connection-oriented and connectionless streams. The material distinguishes itself by covering the full lifecycle of network communication, from initializing system-level protocol stacks and resolving domain names to managing complex connection behaviors. It provi

    C
    View on GitHub↗701
  • systemsapproach/bookSystemsApproach avatar

    SystemsApproach/book

    3,298View on GitHub↗

    This project is a comprehensive computer networking textbook and instructional resource. It serves as a technical guide for the design and implementation of network layers, protocols, and hardware architecture, covering the spectrum from physical links to application-layer protocols. The content provides a detailed study of standards for congestion control, reliable data delivery, and internetwork routing. It includes specialized technical material on network security, public-key infrastructure, and the operation of modern cloud infrastructure and data centers. The material covers a broad ra

    Python
    View on GitHub↗3,298
Compare all 30 related projects→

Frequently asked questions

What does smoltcp-rs/smoltcp do?

smoltcp is a standalone TCP/IP network stack written in Rust, designed specifically for bare-metal and embedded systems. It provides a memory-safe implementation of the internet protocol suite that operates without requiring dynamic heap allocation.

What are the main features of smoltcp-rs/smoltcp?

The main features of smoltcp-rs/smoltcp are: Bare-Metal Network Stacks, TCP/IP Stacks, TCP Connection Management, Connection Lifecycle State Machines, Ethernet Frame Processing, Ethernet Frame Switching, Network Stacks, Socket Networking.

Which projects share features with smoltcp-rs/smoltcp?

Projects with overlapping indexed features include: m-labs/smoltcp — smoltcp is a TCP/IP stack and network protocol implementation designed for resource-constrained environments and… riba2534/tcp-ip-networknote — TCP-IP-NetworkNote is a comprehensive technical reference and guide for implementing network communication using TCP… codeplea/hands-on-network-programming-with-c — This project serves as a comprehensive tutorial and technical resource for developing network applications in the C… systemsapproach/book — This project is a comprehensive computer networking textbook and instructional resource. It serves as a technical… cesanta/mongoose — Mongoose is an embedded networking library providing TCP/IP stacks, web server hosting, and IoT device connectivity.… cloudius-systems/osv — OSV is a unikernel operating system and cloud-native execution environment designed to run as a secure microVM on…