The hacl-packages repository is a mono repository for all HACL packages and bindings. The top level holds the HACL C library that is based on the output of HACL*.
The C source code lives in the
src directory for most platforms.
The source code for MSVC can be found in
The includes can be found in the corresponding
include directories (
Vale is considered an external dependency and therefore lives in its own
vale --- sources in
vale/src and headers in
Tests are found in the
tests folder and are written in modern C++ rather than
The KaRaMeL dependency is found in
karamel and holds only headers that are
used by the HACL C source code.
A tool for basic CPU feature detection can be found in
This is only used for tests and will probably be removed from this repository
The build is driven by the
mach script and the
They rely on the contents of the
tools folder (general tools for managing the
repository and building in Python), as well as the
config folder (platform
detection and build configuration helper).
Docker tools for extracting the source code from HACL* are found in
docs folder contains this book you're reading right now.
The language bindings are in sub folders.
The Rust bindings can be found in the
See the Rust chapter for more details on the build and structure.
The OCaml bindings can be found in the
See the OCaml chapter for more details on the build and structure.