Introduction
In this guide, you'll find a walkthrough of the Enarx repositories on GitHub. The outline of the Enarx repositories are:
Main crates
- enarx:
- src: backends (code that runs in the host side)
 - internal: wasmldr, shin-sev, shin-sgx
 - examples: tcp_server
 - tests
 - helper
 
 - sallyport: communication channel between untrusted host and guest: mostly syscalls.
 
Secondary crates
- ctr0stack: read write stack from Linux kernel for things like environment variables
 - vsdo: used by SGX to enter an enclave
 - rct1: load binary from disk (static or dynamic)
 - xsave: save x86 cpu state
 - flagset: handle flags
 - sgx: set of data structures related to SGX
 - mmarinus: Rust mmap (memory map) wrapper (runtime-safe)
 - iocuddle: Rust ioctl (input/output control) wrapper (runtime-safe)
 - noted: macro to generate notes (define size of enclave, etc)
 
Helper crates
- lset: types for measuring linear sets
 - nbytes: define constants
 - uabs: calculates the absolute value of input and returns unsigned integer
 - signrel: maps relationships between integers that only differ by signedness