nim-sds/CHANGELOG.md
Ivan FB 2e69c2f2d0
docs: add CHANGELOG with 0.4.0 release notes
Start tracking notable changes in a Keep a Changelog file so consumers
(notably sds-go-bindings) can see breaking changes — the C FFI symbol
rename and the required participantId — at a glance rather than reading
the git log.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 10:06:11 +02:00

2.2 KiB

Changelog

All notable changes to nim-sds are documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[0.4.0] - 2026-06-19

Added

  • SDS-Repair (SDS-R) support, implementing the repair extension from the SDS spec (#60).
  • Persistence interface for SDS state, refactored into a snapshot-based, fully async API with atomic per-operation semantics (#66, #69, #72, #73).
  • Nimble-based build system for the core library and FFI targets (#52).
  • CLAUDE.md contributor/architecture guide (#58).

Changed

  • Breaking (C ABI): adopted nim-ffi v0.1.5 and migrated the C FFI to its macro-generated API. All exported symbols are renamed from PascalCase Sds* to snake_case sds_* (e.g. SdsNewReliabilityManagersds_create, SdsCleanupReliabilityManagersds_destroy). Consumers such as sds-go-bindings must update to the new names (#81).
  • Replaced the nim-libp2p protobuf dependency with nim-protobuf-serialization for message encoding/decoding (#77).
  • Breaking (API): participantId is now required when creating a ReliabilityManager (#67).
  • General refactor to align the codebase with the logos-delivery style (#62).

Fixed

  • Restored -d:noSignalHandler for the libsds build so the embedded library does not install signal handlers.
  • Forced epoll usage on Android.

[0.3.0]

Earlier releases were not tracked in this changelog. See the release tags for history prior to 0.4.0.