KEKS is compact, deterministic, concise and streaming binary serialisation format. It is aimed to be lightweight in terms of CPU, memory, storage and codec implementation size usage. It supports wide range of data types, making it able to transparently replace JSON. KEKS means: kompakt, entschlossen, knapp, strömend. But why!? Because there is no satisfiable codec for all set of requirements below. * It *must* be schema-less format. Schema-aware ones have their definite valuable advantages, but also a complication drawbacks and non-friendliness to humans. * Its encoder/decoder *must* be very compact and small in terms of code and branches amount, to reduce attack surface on the codec itself. * It *must* support enough data types for being able at least to replace JSON transparently. * Its encoding *must* be deterministic -- there must be only a single representation of the structured data, allowing its usage in cryptography-related contexts. * Its encoder *should* be streaming-friendly, making encoder simpler and allowing memory-constrained systems workability. * Its encoding *should* be reasonably compact, to be friendly to storage space constrained systems. * It *should* be frugal to CPU usage for both performance/memory constrained and high data volume applications. * It *should* differentiate binary and human-readable strings. * It *would* be nice to have human-editable intermediate representation. include [ComparisonWithOtherCodecs] [INSTALL] [encoding/] [schema/] -- structure validation against schemas [cm/] -- cryptographic messages [THANKS] Copyright © 2024-2025 Sergey Matveev