git clone https://github.com/artalis-io/keel.git
cd keel
make # build libkeel.a
make test # run all tests- C11 — compiled with
-Wall -Wextra -Wpedantic -Wshadow -Wformat=2 -Werror -fstack-protector-strong - No direct malloc/free — all allocation through the
KlAllocatorinterface - Public API prefix — all public functions use
kl_(e.g.kl_router_init) - Error handling — return
-1on failure,0on success (or positive value); setlast_errorat the point of failure - Resource cleanup — every
_inithas a corresponding_free - Overflow guards — check against
SIZE_MAX/2orINT_MAX/2before arithmetic - Header-only code —
static inlinein headers (seerequest.h) - Vendor code — compiled with
-w; do not modify files undervendor/
All of these must pass cleanly:
make test # all unit tests
make debug-test # tests under ASan + UBSan
make analyze # Clang scan-build
make cppcheck # cppcheck static analysis- Branch off
main - Make your changes, add tests for new functionality
- Ensure all checks above pass
- Open a PR against
main— CI runs automatically - Required status checks (Linux epoll, ASan+UBSan, Static Analysis, CodeQL) must pass
Open a GitHub issue with steps to reproduce, expected behavior, and actual behavior.
Do not open public issues for security vulnerabilities. See SECURITY.md for responsible disclosure instructions.