LayerKeySort v3.1.0
LayerKeySort 3.1.0 is a compatible V3 feature release focused on installation, source distribution, and first-use experience. The production ordering implementation and public C function set are unchanged from v3.0.0.
Highlights
- A generated two-file C17 amalgamation:
layerkeysort.handlayerkeysort.c. - CMake install/export support:
find_package(LayerKeySort CONFIG REQUIRED)andLayerKeySort::layerkeysort. - Tests, examples, and install rules default OFF when used as a CMake subproject.
- Deterministic Release assets with a SHA-256 manifest, exact-membership validation, reproducibility checks, and tamper rejection.
- Clearer English and Simplified Chinese onboarding, integration guidance, API selection, and a project landing page. Current documentation is separated from historical design and benchmark records.
Download
For a small source integration, download LayerKeySort-3.1.0-amalgamation.zip. Copy layerkeysort.h and layerkeysort.c beside your application, include the header, and compile the implementation as C17. Python is not required to consume the downloaded package.
The ZIP contains exactly layerkeysort.h, layerkeysort.c, example.c, LICENSE, and README.txt. Use LayerKeySort-3.1.0-SHA256SUMS.txt to verify the ZIP. GitHub's automatic Source code ZIP/tar.gz are separate full-repository archives. No prebuilt library binaries are supplied.
Compatibility
The public API remains 59 functions. No production src/*.c ordering implementation changes from v3.0.0 are included. Path comparison, canonical display syntax, LK1 v1 bytes, ownership, comparator behavior, and relabel semantics remain unchanged. See the 3.x compatibility contract.
Validation
The exact release commit passed the five GitHub CI configurations: Windows MSVC, Ubuntu GCC, Ubuntu Clang, Ubuntu Clang with sanitizers, and macOS AppleClang. Each ran CTest 8/8, all three examples, and distribution validation.
External consumer checks cover source-tree and offline FetchContent C/C++ projects, installed C/C++ consumers, and strict-warning amalgamation consumers. The release-asset workflow checks membership, checksums, reproducibility, and rejection of tampered assets. These results describe the tested configurations rather than every possible platform.
Known limitations
Managed insertion may relabel a large region or the entire collection, producing workload-dependent synchronous tail latency. Path depth, memory use, and LK1 storage depend on the workload. Complete managed insertion has no proven worst-case O(log n) guarantee or formal amortized bound.
A Path is an ordering coordinate, not permanent item identity. LayerKeySort does not provide distributed/CRDT ordering or whole-Tree serialization. Caller-owned items and comparator context must remain valid; comparator-relevant fields must remain unchanged while items are resident.
Documentation
- English README
- 简体中文
- Integration
- Usage
- API reference
- Benchmark evidence and limitations
- Changelog
- Project homepage and visualizer
Release commit: dfa9562b9471947cfbd4ee1d1750a59434be83e2