/unet

a C++ user-space network stack

Primary LanguageC++MIT LicenseMIT

README

unet is a user space TCP/IP stack I'm writing to learn about networking. It is inspired by picotcp and smoltcp, two awesome well documented network stacks.

Build Status

Dependencies

Building

You will need Meson and Ninja to build. The basic steps are:

meson build && cd build && ninja

The following special targets are provided:

  • install: Installs the library and headers on your system
  • test: Runs unit tests, don't forget to meson configure -Db_sanitize=address
  • benchmark: Runs benchmarks, don't forget to meson configure -Dbuildtype=release
  • smoke: Runs smoke tests
  • format: Runs clang-format on the source

A dev VM w/a build environment is provided. Just vagrant up && vagrant ssh.

Tests

The included unit tests will run on Linux, macOS, etc. The included smoke tests will only run successfully on a Linux system because they rely on a TAP interface. The provided Linux VM has a TAP interface setup for these tests.

Resources