Skip to content

Releases: Eignex/kencode

v1.2.4

27 Apr 08:06

Choose a tag to compare

CI-focused release that runs the full test suite on every build, uploads test reports, and renames Base64UrlSafe for consistency.

  • Renames Base64UrlSafe to Base64Url.
  • Runs allTests in CI and uploads test reports as artifacts.
  • Makes the codecov upload step non-fatal.

v1.2.3

27 Apr 08:06

Choose a tag to compare

Maintenance release with a BaseRadix correctness fix for very large power-of-two radixes, new alphabet abstractions, and build stability improvements.

  • Fixes BaseRadix for massive power-of-two bases.
  • Adds UnicodeRangeAlphabet and CharAlphabet interfaces for richer character encoding options.
  • Streamlines encodeBlock logic in BaseRadix and adds byte-handling helpers.
  • Optimizes buffer usage and simplifies encodeBlock input handling.
  • Raises the Gradle JVM heap to avoid out-of-memory errors during builds.

v1.2.2

27 Apr 08:06

Choose a tag to compare

Restructures the project as Kotlin Multiplatform with wasm and iOS targets, adds payload transforms (encryption, compact-zeros) in place of the checksum interface, and merges class and object bitmask headers for tighter output.

  • Migrates the project to a Kotlin Multiplatform structure.
  • Extends build configuration to include wasm and iOS targets.
  • Replaces the Checksum interface with a PayloadTransform interface for payload processing.
  • Integrates CompactZeros as a PayloadTransform and removes the standalone compactZeros flag.
  • Implements merged bitmask headers for classes and objects via a new PackedContext class.
  • Consolidates boolean and nullable bitmask handling into a ClassBitmask utility.
  • Streamlines varint encoding and decoding in EncodedFormat.
  • Allows configurable initial capacity for ByteOutput in EncodedFormat.
  • Adds a linter step to GitHub Actions and an .editorconfig.
  • Adds README examples and links for encryption and error correction extensions.

v1.2.1

27 Apr 08:06

Choose a tag to compare

Internal cleanup release that unifies the CRC implementations behind a shared engine and tightens BaseRadix visibility.

  • Introduces a unified CrcEngine shared by CRC8, CRC16, and CRC32.
  • Simplifies CRC test structure for better coverage and clarity.
  • Changes encodeBlock and decodeBlock visibility to internal in BaseRadix.

v1.2.0

27 Apr 08:06

Choose a tag to compare

Replaces the per-property VarInt/VarUInt annotations with a single PackedType annotation, consolidates integer encoding configuration, and tightens collection encoding and decoding.

  • Replaces VarInt and VarUInt annotations with a unified PackedType annotation.
  • Consolidates defaultVarInt and defaultZigZag into a single defaultEncoding property on PackedFormat.
  • Optimizes nullable collection handling and bitmask logic in PackedEncoder and PackedDecoder.
  • Adds tests for boolean and nullable list encoding and truncation exceptions.
  • Adds an error message for checksum size violations during EncodedFormat decoding.
  • Improves UTF-8 string handling and error reporting in readStringInline.

v1.1.0

27 Apr 08:06

Choose a tag to compare

Adds a builder DSL for configuring EncodedFormat and PackedFormat, a FixedInt annotation for overriding default integer encoding, and assorted decoder fixes for nullable and polymorphic cases.

  • Adds builder DSL configuration for EncodedFormat and PackedFormat.
  • Adds the FixedInt annotation to force fixed-length integer encoding when defaults differ.
  • Improves nullable element decoding and enforces structure constraints in PackedDecoder.
  • Adds test coverage for polymorphic serialization, truncation, and nullable lists.
  • Updates the README to document the new DSL and Maven coordinates.

v1.0.0

27 Apr 08:06

Choose a tag to compare

Initial release of kencode, a Kotlin Multiplatform library for compact binary encoding with kotlinx.serialization integration, base-N text encodings, and CRC checksums.

  • Provides a flexible BaseRadix encoder supporting arbitrary radixes.
  • Includes Base64 (standard and URL-safe) and Base85 implementations.
  • Adds CRC8, CRC16, and CRC32 checksum implementations with reflected variants.
  • Introduces the PackedFormat for compact kotlinx.serialization output with bit packing.
  • Introduces the EncodedFormat that pairs PackedFormat with byte encoding and checksums.
  • Supports nullable types, enums, UInt/ULong, and default object handling.
  • Adds varint, zigzag varuint, and fixed-width integer encoding helpers.
  • Includes example usages for protobuf-style and cipher-based serialization.
  • Ships GitHub Actions for build and release.