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.
| Python | JavaScript | |
|---|---|---|
| Package | dreamdb | @dreamlake/dreamdb |
| Runs on | Python 3.8+ | Node 20+ and modern browsers |
| Reads | Yes | Yes |
| Writes | Yes | Yes, from 0.4.0 |
| Creates datasets | Yes | Node only, and not for IVF or IMI index families |
| Trains indexes | Yes | No — 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
numpy is optional but every example uses it. With uv:
Check it:
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
Check it:
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:
| Import | Resolves to | Notes |
|---|---|---|
@dreamlake/dreamdb in a bundler | bundler build | Vite needs vite-plugin-wasm |
@dreamlake/dreamdb in Node | Node build | ESM and CJS both work. The only build with Authoring |
@dreamlake/dreamdb/web | web build | No bundler plugin. Call await ready() before anything else |
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.