Skip to content

Releases: marykdb/rocksdb-multiplatform

10.4.5

14 Oct 11:39

Choose a tag to compare

Fix issue with jvm publishing.

Full Changelog: 10.4.4...10.4.5

10.4.4

10 Oct 12:10

Choose a tag to compare

Based on RocksDB 10.4.2

Added support for watchOS, tvOS, Android Native.

Added quite a lot of multiplatform implementations for the RocksDB functionalities below.

Table format and filtering

  • Block-based table configuration – wrappers expose cache, checksum, index, and hash table tuning knobs for block-based table factories, mirroring the native BlockBasedTableConfig API.
  • Plain table configuration – adds PlainTableConfig controls for key sizing, bloom filters, hash-table ratio, encoding, and storage options for prefix-only tables.
  • Bloom filtersBloomFilter wrappers (expect/actual) let multiplatform callers attach bloom filters to table configs with optional block-based builders.
  • Programmable table filteringAbstractTableFilter and TableProperties expose table-property metadata so Kotlin callbacks can decide whether to include SST files during compaction or scans.
     

Options management and tuning

  • Mutable column-family options – builder APIs cover write buffers, compaction triggers, and compression selection, plus parsers for RocksDB option strings.
  • Mutable database options – similar builders provide runtime tweaks for background jobs, flush behavior, WAL sizing, sync cadence, and off-peak scheduling, including string parsing support.
  • Configurable option loadingConfigOptions, DBOptionsInterface, and OptionsUtil let clients load the latest on-disk options (or specific files) into live option instances with environment selection and sanity checking.
  • Compression & compaction knobs – new wrappers cover general, FIFO, and universal compaction options as well as compression window/level/dictionary tuning.
  • Table import/ingest optionsImportColumnFamilyOptions and IngestExternalFileOptions expose file-move, snapshot-consistency, global-seqno, blocking flush, and ingest-behind switches for SST import workflows.
     

File management, ingestion, and metadata

  • External SST metadataExternalFileIngestionInfo, LiveFileMetaData, and enriched TableProperties surface file names, column family identifiers, sequence numbers, and compression collectors for ingested or live SSTs.
  • SST tooling – multiplatform stubs for SstFileWriter (fully implemented) and SstFileReader (ready once native API lands) allow generating or verifying external tables before ingestion.
  • SST file lifecycleSstFileManager throttles deletion and tracks usage, while WriteBufferManager coordinates shared memtable budgets across column families.
  • Transaction log streamingTransactionLogIterator and TransactionLogBatchResult provide batch-by-batch WAL access for change capture or recovery tooling.
     

Background operations and observability

  • Extended event listenersEventListener now surfaces callbacks for flush/compaction lifecycle, external file ingestion, background errors, write stalls, and memtable sealing with associated metadata wrappers (FlushJobInfo, CompactionJobInfo, ExternalFileIngestionInfo, WriteStallInfo, MemTableInfo).
  • Background error classification – enumerations capture background error sources, flush reasons, write stall states, and WAL recovery modes for richer diagnostics.
  • Performance metricsPerfContext and PerfLevel expose hundreds of per-operation counters and control their collection scope, while StatisticsCollector adds periodic ticker/histogram polling with user callbacks.
  • Compaction insightCompactionJobStats supplements CompactionJobInfo with aggregated record and byte counts for each job.
     

Caching, environments, and TTL

  • Persistent caching & rate limiting – wrappers for PersistentCache and RateLimiter add APIs for tiered caching and background IO throttling, respectively.
  • Shared environmentsMemEnv enables purely in-memory environments, while EnvOptions and Logger expose environment-level tuning and logging hooks used by the new utilities.
  • TTL-aware databasesTtlDB open helpers cover single- and multi-column-family scenarios, including per-family TTL arrays and read-only support.
     

Additional utilities

  • Write-ahead log recovery controlsWALRecoveryMode options and TransactionLogIterator integration allow callers to tailor crash recovery semantics and inspect WAL batches.
  • Write stall diagnosticsWriteStallInfo and WriteStallCondition expose stall transitions alongside the column family involved for better backpressure monitoring.

Full Changelog: 10.4.2...10.4.4

10.4.2

07 Sep 19:23

Choose a tag to compare

Update to RocksDB 10.4.2

Full Changelog: 9.10.2...10.4.2

9.10.2

11 Mar 23:35

Choose a tag to compare

Add support for Windows/MingwX64

Full Changelog: 9.10.1...9.10.2

9.10.1

11 Mar 15:04

Choose a tag to compare

Add support for all relevant compression types to Android platform: LZ4, Zstd, Snappy, BZip2 and Zlib.

Note: Since Snappy is now bundled on Android, it is now the default set compression like on RocksDB itself like the other platforms. Switch to NO_COMPRESSION if you want to keep the same behavior as before on Android

Full Changelog: 9.10.0...9.10.1

9.10.0

14 Feb 13:49

Choose a tag to compare

Update to RocksDB 9.10.0
Add support for Transactions through TransactionDB and OptimisticTransactionDB

Full Changelog: 9.6.2...9.10.0

9.6.2

13 Jan 17:45

Choose a tag to compare

Fixed issues with native.
Added Linux targets.

Full Changelog: 9.6.1...9.6.2

9.6.1

06 Jan 22:55

Choose a tag to compare

Updated to RocksDB 9.6.1. Rewrote native layer to use c API. This enables us to release linux and windows builds in the future.
Also updated to Kotlin 2.1.0.

Full Changelog: 8.0.0...9.6.1

8.0.0

06 Jan 22:59

Choose a tag to compare

Update to RocksDB 8.0.0

Full Changelog: 7.3.1...8.0.0

7.3.1

15 Jul 08:31

Choose a tag to compare