- All commits should make clang-tidy happy.
- Use tap for testing.
- Use hyper-docs to generate documentation.
- For benchmarking fun use this.
- Almost never use new keyword. If absolutely requied, handle with shared or unique.
Releases can be verified using the minisign tool.
Build System & Package Manager
Tools that solve problems you don't have slow down your productivity. We created this crude and simple solution. It does not (and doesn't need to)...
- provide high-performance caching optimizations
- provide a configuration language or DSL
- Use a strict subset of the well known package.json format
- Use a well-defined location to place dependency trees (./deps)
clang++ >= 8.0 node.js >= 12 git >= 2.0
$build -h build v2.0.0 build [...args] build the project [with ...args] build -h|help print this help screen build -i|install [dep] recursively install dep(s) build -u|upgrade [dep] recursively upgrade dep(s) build add <remote> [hash] [-d] add git dep [at commit] [as dev] build init initialze a new project build run <name> run a sepecific script build test run the test script
Becase dependencies are in a well known location, and each one contains a package.json file, sources and headers can be discovered and easily passed to the compiler.
Test and build commands
The test and build command will recursively find all dependency files and flags, dedupe them and pass them to the compiler. This is sufficiant and works well for all cases in this project.
- path 100%
- varint 100%
- eventemitter 100%
- flat-tree 100%
- count-trailing-zeros 100%
- buffer 100%
- memory-pager 80%
- sparse-bitfield 80%
- merkle-tree-stream 10%