Releases: NetKit-Labs/memkit
Releases · NetKit-Labs/memkit
Release list
arena bounds protection
Summary
Arena bump allocation is hardened for embedded use: overflow-safe offset math, absolute-address alignment (so atomics-backed containers like MpscQueue work from unaligned backing buffers), and clearer docs on what memkit checks vs what integrators own.
Also includes project-wide -fno-exceptions / -fno-rtti enforcement and make check-lib CI guard.
Changes since v0.2.3
- Arena bounds protection — safe
offset + padding + sizemath; alignment applied to absolute addresses, not offset-only padding - Docs — Bounds and sizing in design philosophy; GETTING_STARTED checklist link
- Tests —
test_arena_cpp,test_arena_coverflow/alignment cases - Build —
-fno-exceptions -fno-rttion all library and test targets; CIcheck-libverifies no exception/RTTI symbols in objects
Test plan
-
make all check-lib lib-mcu-c mpu benchmark - CI green on push (MCU/MPU Clang + GCC, CMake, ASan, macOS)
v0.2.3
Summary
libmemkit_mcu_c.a— freestanding static library for tier-1 C API on MCU (arena+ C bindings), built with-fno-exceptions -fno-rtti -ffreestanding- Make targets:
lib-mcu-c,check-lib-mcu-c(no libstdc++ symbols),test-lib-mcu-c-link(link withcconly) - Docs: DISTRIBUTING_MCU_C.md — how to ship prebuilt objects to C-only firmware
C firmware customers can link with cc, not c++, and do not need -lstdc++.
Test plan
-
make lib-mcu-c check-lib-mcu-c test-lib-mcu-c-link - CI on push (MCU Clang + GCC jobs)
v0.2.2
Summary
- C API test coverage: 16 per-container tests (9 MCU tier-1 + 7 MPU tier-2) plus one trimmed MPU integration test (
arena_create+ all*_createon a shared arena). Removed redundanttest_c_api_smoke.c. - Adoption docs: Getting started (C/C++ paths, build, CMake/FetchContent) and Container guide (which container? decision table + recipes).
- C helpers:
memkit_helpers.h— static init macros (MEMKIT_QUEUE_INIT_STATIC, etc.), aligned storage declarations, early-return macros, debug status strings. Included via<memkit.h>.
Test plan
-
make all— 31 C++ tests + 9 C API tests + examples -
make mpu— tier-2 C tests + integration test - CI green on push
v0.2.1
Summary
Documentation release marking memkit as feature-complete for embedded use on macOS and Linux.
- Complete C++ API reference (32 utilities with key operations)
- Complete C API reference (14 containers + arena, tier 1/2)
- API completeness summary, test coverage notes, and examples index
- Future work backlog (Windows, deeper tests, C API test parity)
Includes (since v0.2.0)
- Arena absolute pointer alignment fix (Linux/macOS consistency)
- MCU examples (
example_mcu_c,example_comm_pipeline) - Hand-rolled C benchmarks and expanded CI matrix
Test plan
-
make all— 31 C++ tests + 4 MCU examples - CI green on Ubuntu (Clang/GCC) and macOS
v0.2.0
Summary
- 32 C++ utilities (C++-only embedded helpers; C API unchanged at 14 containers)
- 31 C++ tests + C API smoke/extended tests
- 2 MCU examples:
example_mcu,example_embedded_patterns
New since v0.1.1
Embedded utilities
- Intrusive lists, SPSC/MPSC queues, FlatMap, EnumMap, TimerWheel
- DoubleBuffer, RingLog, SparseSet, SmallBuffer, FixedVariant
- TokenBucket, FixedIoVec, LookupTable
- BitReader/BitWriter, MovingAverage, WindowStats
Documentation & examples
- Composition patterns section in README
examples/example_embedded_patterns.cpp(DMA ping-pong, MPSC queue, calibration, bit stream, filtering)
Test plan
-
make all -
make test_c_api_smoke -
make mpu(MPU builds)
v0.1.1
Summary
- Amalgamate all C API extern-C bindings into a single
bindings.cpptranslation unit - Remove orphan headers, legacy duplicate tests, and old per-container C API
.cppfiles - Inline callback bridges; move layout checks to header-only
static_checks.hpp - Restore C API smoke/extended tests and MPU build targets in Makefile, CMake, and CI
- Update README for current dual C/C++ API and build layout
- Fix MCU unused-function warning in
arena.cpp
Test plan
-
make all -
make test_c_api_smoke -
make mpu