The smallest TCP/IP stack on the planet
Find a file
Daniele Lacamera 4a3f8de4ab
All checks were successful
/ unit_test (push) Successful in 45s
Repeat READABLE event if there is still data in queue
2024-11-29 15:02:30 +01:00
.forgejo/workflows New tree; draft for posix support 2024-11-16 07:34:11 +01:00
src Repeat READABLE event if there is still data in queue 2024-11-29 15:02:30 +01:00
.gitignore Added port for raspberry pi pico 2024-11-24 21:34:15 +01:00
config.h Added telnetd to raspberry pico port 2024-11-27 21:14:02 +01:00
core.md Fix callbacks, added some design doc 2024-11-03 16:26:14 +01:00
femtotcp.h Added telnetd to raspberry pico port 2024-11-27 21:14:02 +01:00
LICENSE Initial import 2024-10-27 13:27:18 +01:00
Makefile Make install 2024-11-28 11:44:58 +00: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.