The smallest TCP/IP stack on the planet
Find a file
Daniele Lacamera 1e285bdd85
All checks were successful
/ unit_test (push) Successful in 38s
Fix test to capture all packets
2024-12-15 17:12:09 +01:00
.forgejo/workflows New tree; draft for posix support 2024-11-16 07:34:11 +01:00
src Fix test to capture all packets 2024-12-15 17:12:09 +01:00
.gitignore Added port for raspberry pi pico 2024-11-24 21:34:15 +01:00
config.h Add DNS client, DHCP fixes. 2024-12-15 17:05:37 +01:00
core.md Fix callbacks, added some design doc 2024-11-03 16:26:14 +01:00
femtotcp.h Add DNS client, DHCP fixes. 2024-12-15 17:05:37 +01:00
LICENSE Initial import 2024-10-27 13:27:18 +01:00
Makefile Add DNS client, DHCP fixes. 2024-12-15 17:05:37 +01:00
README.md Initial import 2024-10-27 13:27:18 +01:00

FemtoTCP

The smallest TCP/IP stack on the planet

Description and project goals

FemtoTCP is a TCP/IP stack with no dynamic memory allocations, designed to be used in resource-constrained embedded systems.

Endpoint only mode is supported, which means that femtotcp can be used to establish network connections but it does not route traffic between different network interfaces.

A single network interface can be associated with the device.

Features supported

  • ARP (RFC 826)
  • IPv4 (RFC 791)
  • ICMP (RFC 792): only ping replies
  • DHCP (RFC 2131): client only
  • UDP (RFC 768): unicast only
  • TCP (RFC 793)
    • TCP options supported: Timestamps, Maximum Segment Size
  • BSD-like, non blocking socket API, with custom callbacks
  • No dynamic memory allocation

FemtoTCP is licensed under the GPLv3 license. See the LICENSE file for details. Copyright (c) 2024 Daniele Lacamera. Some rights reserved.