DreamDB

Installation

Version scope: Python 0.0.12 / JavaScript 0.5.4. Entity keys, progressive geometry, structured ragged/CSR and additional index capabilities are included in these releases. See feature examples and limits for the supported boundaries; older packages may not expose these methods.

DreamDB ships two SDKs, both compiled from the same Rust core, so they agree byte for byte. Python is the ingestion and training surface. JavaScript runs in Node and the browser, reads everywhere, and writes where you give it a backend that can PUT.

PythonJavaScript
Packagedreamdb@dreamlake/dreamdb
Runs onPython 3.8+Node 20+ and modern browsers
ReadsYesYes
WritesYesYes, from 0.4.0
Creates datasetsYesNode only, and not for IVF or IMI index families
Trains indexesYesNo — train in Python or the CLI, attach as a layer

If you are only searching an existing dataset, the JavaScript SDK alone is enough. If you are producing data at any scale, or training an index, you want Python.

Python

bash
pip install dreamdb==0.0.12 numpy

numpy is optional but every example uses it. With uv:

bash
uv add dreamdb==0.0.12 numpy

Check it:

bash
python -c "from importlib.metadata import version; print(version('dreamdb'))"
# 0.0.12

The wheel bundles a compiled Rust extension. PyPI publishes CPython 3.8 ABI-stable wheels for macOS on Apple silicon and Linux on x86_64 and ARM (manylinux2014). There is no source distribution or prebuilt Windows/Intel Mac wheel in 0.0.12, so those platforms need a source checkout, a Rust toolchain, and maturin; pip install dreamdb alone cannot build a source archive that PyPI does not publish.

JavaScript

bash
npm install @dreamlake/dreamdb@0.5.4

Check it:

bash
node -e "import('@dreamlake/dreamdb').then(m => console.log(typeof m.Space))"
# function

The package is a WebAssembly build of the same Rust core the Python SDK uses. Shared implementation is not an independent interoperability proof, and target capabilities differ. It ships three entry points and picks one for you:

ImportResolves toNotes
@dreamlake/dreamdb in a bundlerbundler buildVite needs vite-plugin-wasm
@dreamlake/dreamdb in NodeNode buildESM and CJS both work. The only build with Authoring
@dreamlake/dreamdb/webweb buildNo bundler plugin. Call await ready() before anything else
html
<script type="module">
  import ready, { Space } from "https://esm.sh/@dreamlake/dreamdb/web";
  await ready();
</script>

The browser build leaves out dataset creation and index building. Reading, querying, appending and committing are present; Authoring throws in the browser with an explanation. Artifact size depends on the version and build toolchain; historical bundle sizes are not a current download-size promise.

Collector upgrade: 0.0.12 repairs GC retention for reference-mode vector data. Upgrade or fence all collectors before using GC on those roots, including retained history. A reader-only upgrade does not protect against an old collector. See upgrade details before scheduling destructive maintenance.

The pure-TypeScript package that used to carry this name (0.1.x) is retired. Its writes produced objects no other implementation could read, and its own tests passed because they were its reader reading its writer. 0.2.x and 0.3.x were read-only while the Rust core was ported; 0.4.0 restores writing.

What to read next

  • Quick Start — write a dataset with Python, query it from JavaScript, in about ten minutes.
  • Storage backends — local disk, MinIO, S3, R2, and what browsers need from CORS.
  • Docs for agents — install these docs into Claude, or point any agent at /llms.txt.