2025-04-05 17:17:32 -03:00
2025-01-24 22:44:19 -03:00
2025-03-06 23:11:42 -03:00
2025-03-06 23:11:42 -03:00
2025-04-05 10:43:01 -03:00
2025-04-05 17:17:32 -03:00
2025-04-05 17:17:32 -03:00
2025-03-06 23:11:42 -03:00
2025-03-06 23:11:42 -03:00
2025-04-04 19:16:26 -03:00
2025-03-06 23:11:42 -03:00
2025-03-06 23:11:42 -03:00
2025-03-06 23:11:42 -03:00
2025-02-24 09:25:55 -03:00
2024-12-23 18:37:48 -03:00
2025-03-06 23:11:42 -03:00
2025-02-20 23:41:27 -03:00
2025-03-06 23:11:42 -03:00
2025-03-06 23:11:42 -03:00

lneto

go.dev reference Go Report Card codecov Go sourcegraph

Userspace networking primitives.

lneto is pronounced "L-net-oh", a.k.a. "El Neto"; a.k.a. "Don Networkio"; a.k.a "Neto, connector of worlds".

Packages

  • lneto: Low-level Networking Operations, or "El Neto", the networking package. Zero copy network frame marshalling and unmarshalling.

    • lneto/frames.go: Ethernet, IPv4/IPv6, ARP, TCP, UDP packet marshalling/unmarshalling.
  • lneto/tcp: TCP implementation and low level logic.

  • lneto/dhcpv4: DHCP version 4 protocol implementation and low level logic.

  • lneto/dns: DNS protocol implementation and low level logic.

  • lneto/ntp: NTP implementation and low level logic. Includes NTP time primitives manipulation and conversion to Go native types.

  • lneto/internal: Lightweight and flexible ring buffer implementation and debugging primitives.

Install

How to install package with newer versions of Go (+1.16):

go mod download github.com/soypat/lneto@latest

Developing (linux)

  • tap (linux only, root privilidges required) Program opens a TAP interface and assigns an IP address to it and exposes the interface via a HTTP interface. This program is run with root privilidges to facilitate debugging of lneto since no root privilidges are required to interact with the HTTP interface exposed.

    • POST http://127.0.0.1:7070/send: Receives a POST with request body containing JSON string of data to send over TAP interface. Response contains only status code.
    • GET http://127.0.0.1:7070/recv: Receives a GET request. Response contains a JSON string of oldest unread TAP interface packet. If string is empty then there is no more data to read.
  • stack Contains stack implementation which can interact with tap program. No root privilidges required.

    • Can expose a HTTP server.
S
Description
Userspace networking library. HTTP/TCP/IP/Ethernet/RMII/MDIO/UDP/NTP/DHCP/DNS blabla. Runs on a couple kB of RAM
Readme BSD-3-Clause 14 MiB
Latest
2026-04-15 00:05:02 +00:00
Languages
Go 100%