Skip to content

KitKey v2.2.0

Stable Released Nov 3, 2026 MIT License

Downloads

KitKey.linux.arm64.zip
58.49 MB · 3 downloads
Download
KitKey.linux.x64.zip
67.37 MB · 4 downloads
Download
KitKey.windows.x64.exe
12.42 MB · 2 downloads
Download

NuGet packages: NTDLS.KitKey.Shared, NTDLS.KitKey.Client and NTDLS.KitKey.Server (see all on NuGet).

Release notes

Be sure to check out the NuGet Packages šŸ“¦

New šŸŽ‰

  • Linux ARM64 build (KitKey.linux.arm64.zip) alongside x64.
  • Linux builds are now self-contained, so .NET no longer needs to be installed on the server.
  • Store names are validated up front, rejecting names that aren’t safe as directory names.

Changes šŸ˜Ž

  • Creating a store is now all-or-nothing. A failed create no longer leaves a half-built store behind.
  • Deleting or stopping a store waits for in-flight operations, and later operations get a clear ā€œstore has been stoppedā€ error.
  • Statistics counters are thread-safe and only count operations that succeeded.
  • The web UI now returns enums as strings, with or without the web API enabled.
  • The web API returns 400 with the message for invalid requests, and now logs the full exception on failures.
  • ConnectAsync now reports connection failures through OnException instead of swallowing them.
  • KkClient and KkServer constructors were consolidated, so every constructor behaves the same.
  • Updated Linux installation instructions.

Fixed šŸ›

  • Clients created with a configuration never raised connect or disconnect events and never auto-reconnected.
  • PushFirst and PushLast with list items had their directions swapped, so first pushed to the end and last to the front.
  • TryGetLast returned the first item instead of the last.
  • GetFirst, GetLast and GetList returned a broken empty item for a missing list, and the TryGet… methods always reported success. They - now return null and false.
  • Removing an item from a list that didn’t exist created an empty list.
  • Deleting an ephemeral store could try to delete a directory relative to the working directory.
  • Cache hits and misses were miscounted for lists, because database misses were counted as hits.
  • A missing store’s page showed zeros instead of returning 404.
  • The store page printed the literal text Model.Store.PersistenceScheme instead of the value.

Full Changelog: https://github.com/NTDLS/KitKey/compare/2.1.6...2.2.0

An unhandled error has occurred. Reload 🗙