This directory contains documentation of various aspects of the netstack. Briefly:

  • describes and motivates how our control flow works
  • describes and motivates the split of our codebase into two separate “core” and “bindings” components
  • describes various implementation details that are confusing enough to be worth calling out explicitly
  • describes local environment set up for development.
  • contains instructions for hacking on the netstack
  • contains ideas for possible future improvements
  • describes our use of types and traits to represent IP versions and addresses
  • describes how we parse and serialize packets, and how we manage packet buffers
  • describes how we use visibility modifiers.
  • motivates our enthusiastic use of static typing