English | 简体中文
A family of independent C17 libraries for maintaining the order of changing collections.
LayerKeySort maintains live sequence order as applications insert, remove, and move occurrences. It is not a replacement for one-shot array sorting. The application owns its items and business identities; each product defines its own order-management contract.
| Full | Mini | |
|---|---|---|
| Current Stable | v4.0.0 | v1.0.0 |
| Best fit | More complete ordering and historical workflows | Lightweight local, mutable sequences |
| Live ordering | Relative operations, stable resident handles, comparator-managed option | Relative operations and stable occurrence handles |
| Arbitrary live-order comparison | Available under the Full contract | O(n) worst case |
| Snapshots and persistence | Immutable snapshots, LS1 keys, explicit wire format and restore | Not provided |
| Group and Batch utilities | Provided | Not provided |
| Core implementation | Bounded blocks and balanced index | Independent non-intrusive doubly linked list |
| Public API | 64 functions (Full v4) | 18 functions (Mini v1) |
| Build from this repository | Root CMakeLists.txt |
mini/CMakeLists.txt |
Full and Mini are independent products, not parent-and-child dependencies. Their version numbers, public APIs, compatibility promises and release cycles are separate. Neither library links to the other's production source.
These are capability distinctions, not benchmarks or claims that one product is universally faster. Choose Mini when its narrower contract is enough; choose Full when its additional ordering, snapshot or batch capabilities are required.
| Product | Overview and usage | API / contract | Download |
|---|---|---|---|
| Full | Full README · Integration · Examples | API · V4 frozen contract | Full v4.0.0 release |
| Mini | Mini README · Usage · Example | Mini v1 public contract | Mini v1.0.0 release |
For Mini, use the release's Mini-only source ZIP; GitHub's automatic Source code archive downloads the whole repository. Full publishes a separate two-file amalgamation asset. Follow the chosen product's instructions; the root CMake build remains Full by default.
include/,src/, rootCMakeLists.txt,tests/,benchmarks/and most ofdocs/: Full.mini/: independent Mini implementation, documentation, tests and build.consumers/layer-order-workbench/: Mini consumer application and validation, not Mini production code or a third ordering library..github/, selectedtools/and product-line policy: repository-level integration and product-specific maintenance tooling.
A possible Embedded/MCU edition is only a future concept. No Embedded product, API or release is currently offered.
- Full's published tags use
v*(current Stablev4.0.0). - Mini's published tags use
mini-v*(current Stablemini-v1.0.0). - GitHub's repository-wide Latest designation is not a per-product version selector. Use each product's explicit release link.
- Old Full releases and V1–V4 research remain available as history; they are not Mini contracts.
- License: MIT. Each product keeps its own documentation and validation requirements.
Read product-line and release policy (简体中文) and contribution guidelines before cross-product changes.
- Full: post-v4 roadmap and technical debt, Issue #3; historical problem ledger, Issue #4.
- Mini and its consumers: Mini roadmap, Issue #7.
- Full examples and validation: Full README · Full validation.
- Mini examples and validation: Mini README · Mini development.
Do not infer real-world adoption, universal platform support, or performance superiority from a feature table. Evaluate your application's actual ordering and resource requirements.