Overview
========
base - a extension to the standard C library that provides tools for managing
lists, memory, bitmaps, initialization, atomics, and several other useful
features.
dune - a better implementation of libdune based on the base library.
net - a packet manipulation library.
runtime - a user-level threading and networking runtime.
iokernel - a user-level softNIC.
bindings - language bindings (C++ and rust) for the runtime.
Coding Style
============
Use the following conventions for C code:
https://www.kernel.org/doc/html/v4.10/process/coding-style.html
Use the following conventions for C++ code:
https://google.github.io/styleguide/cppguide.html
For third party libraries and tools, use their existing coding style.
For some helpful tips on how to write clean code, see:
https://www.lysator.liu.se/c/pikestyle.html
Building
========
To build run:
$ make
To build in debug mode run:
$ make clean; make DEBUG=1
To get static checker output:
$ make sparse
For now, eaching binding has its own separate build system.