DreamDB

Python SDK Changelog

0.0.12 — 2026-09-10

Install with pip install dreamdb==0.0.12.

  • Fix GC retaining reference-mode vector pools across inline and paged Track indexes (#365). Upgrade or fence all collectors; already-deleted Objects and historical #89 metadata damage are not repaired.
  • Add rerank_pool_size and rerank_mode to Dataset.iter_vector (#342): query-local partition pool and inherit/approximate/exact policy. Exact means exact scoring of the selected pool, not global exact recall. Unsupported graph overrides refuse, and missing exact capability never silently falls back.
  • Include the newer Rust maintenance, Watch, tag, Stream and copy-plan core, without claiming Python wrappers for those new operator APIs.

The three-wheel platform policy is unchanged. See API, query examples and release notes.

0.0.11 — 2026-09-10

Install with pip install dreamdb==0.0.11. The upgrade from 0.0.10 adds optional entity keys with revision-aware operations, progressive geometry reads/writes, structured ragged/CSR arrays, L2 and embedding identity enforcement. The shared core also includes the storage, graph, HotShard and planning changes described in release notes.

New forms require compatible consumers and collectors. A stale entity revision intentionally refuses updates; logical deletion retains history. PyPI publishes CPython 3.8 ABI-stable wheels for macOS arm64 and Linux x86_64/aarch64, with no source distribution or Windows/Intel Mac wheel. The installed macOS release passed the existing geometry, entity-key and typed-array boundary suites.

Historical documentation snapshot — 2026-09-10

At that snapshot, the site reflected core main 65c8e05: 28 specs, 66 resolved / 38 open OQs, and 16 Draft headers. Newly documented implementations include optional entity keys, progressive geometry, structured ragged/CSR, L2, compressed/routed/Fresh graphs, typed HotShards, embedding identity checks, scalar path-copy updates and hybrid planning. See the feature guide and limits.

That documentation publication was not an SDK package release. At the time, Python 0.0.10 and npm 0.5.2 were the published versions and these examples required a source build. This paragraph records that historical state, not current registry availability.

Release history for the dreamdb package published on PyPI. Package versions are independent from the DreamDB protocol and documentation-site versions.

0.0.10 — 2026-09-06

bash
pip install dreamdb==0.0.10

This release adds typed numeric arrays and verified VideoItem reads, while substantially reducing memory and repeated I/O in several large-data paths. It contains the changes between python-v0.0.9 and python-v0.0.10.

Added

Typed arrays

  • Schema.add_array(...) and Dataset.add_array(...) declare fixed-shape numeric array fields with persisted dtype, shape, byte order, C/Fortran layout, codec, units, semantic type, frame, and axis order.
  • Dataset.add_array_constant(...) and Dataset.get_array_constant(...) store and retrieve one typed array for the complete timeline.
  • Event and continuous arrays can be appended as NumPy arrays. Reads return NumPy arrays; Arrow output uses FixedShapeTensor rather than opaque binary values.
  • The v1 surface supports f32, f64, signed and unsigned 8/16/32/64-bit integers, using either raw bytes or NPY encoding.
  • Shape, dtype, layout, endianness, codec, and payload length are validated against the persisted declaration. NPY object loading remains disabled.

VideoItem reads

  • Dataset.video_item_by_key(field, item_key) looks up metadata by an opaque byte key without downloading media.
  • Dataset.video_item_at(field, anchor) returns the item containing an absolute timeline anchor, or None for a gap.
  • Dataset.read_video_item_range(field, item_key, start, end) returns the init bytes and complete media fragments overlapping an item-relative half-open range.
  • Item keys remain bytes and 64-bit anchors remain exact Python integers. Dataset handles also remain pinned to the Manifest resolved when opened.

Performance and scalability

  • Large Fragment Track indexes are now paged. A measured narrow query over a 500,000-record Track reduced peak RSS from roughly 275 MB to 19 MB.
  • Historical oversized inline Fragment Tracks use a bounded, content-verified streaming compatibility path instead of reconstructing the complete entry vector in memory. The same-scale measurement used roughly 4 MB peak RSS.
  • Appending to a paged Fragment Track path-copies only the affected root-to-leaf paths and reuses untouched page addresses.
  • SPLADE indexes decode directly into retained typed structures and are cached by verified content hash. Repeated queries avoid another index fetch and decode.
  • Tombstone lists decode without a full generic CBOR tree. Effective tombstone sets are cached by exact Manifest tip and shared by concurrent readers.
  • Graph-page construction preallocates from validated bounds to reduce repeated growth on large graphs.

Correctness and compatibility fixes

  • Unbucketed Track entries now preserve their time anchors in inline and paged forms, so time-range queries select and fetch the intended Item.
  • Subrange reads can be verified with Bao proofs. Invalid, truncated, or mismatched range data fails closed; backends without outboards retain the whole-object compatibility path.
  • Current writers keep Index Pages at the current limit, while readers continue to accept the larger pages emitted by earlier released writers.
  • Fragment paging propagates missing or corrupt index failures instead of silently returning an empty result.
  • The Python extension now uses PyO3 0.29.2 and removes the associated audit exemptions while retaining the abi3-py38 compatibility target.
  • Wheel construction excludes local __pycache__, .pyc, and .pyo files so developer-machine cache state cannot change the published artifact.

Compatibility notes

  • Python 3.8 or newer is required. This release publishes CPython ABI3 wheels for macOS arm64, Linux x86_64, and Linux aarch64.
  • The public API baseline adds seven methods and intentionally removes none.
  • Typed-array operations require NumPy. Ragged, sparse, compressed, strided, and device-native arrays remain outside the v1 format.
  • The VideoItem methods in this release are read APIs. The Python SDK does not yet expose the Rust VideoItem writer.
  • read_video_item_range materializes the selected init and Fragment bytes in memory; it is not a streaming media API and never crosses into the next item.

Distribution

The release is available from dreamdb 0.0.10 on PyPI as three wheels produced by the release workflow:

  • macosx_11_0_arm64
  • manylinux2014_x86_64
  • manylinux2014_aarch64

The wheels use the stable CPython 3.8 ABI and can be installed by newer supported CPython versions on the matching platform.