Skip to main content

@dortdb/core

@dortdb/core is the language-neutral engine of DortDB, a modular framework for querying JavaScript data that already sits in your application's memory.

The core package registers sources, builds plans, optimizes them, executes them, and defines every extension point. It ships no query language, so pair it with one or more language packages:

Installation​

npm install @dortdb/core @dortdb/lang-sql

Every language package declares @dortdb/core as a peer dependency, so all of them share a single core instance.

Usage​

import { DortDB } from '@dortdb/core';
import { defaultRules } from '@dortdb/core/optimizer';
import { SQL } from '@dortdb/lang-sql';

const db = new DortDB({
mainLang: SQL(),
optimizer: { rules: defaultRules },
});

const users = [
{ name: 'Alice', age: 30 },
{ name: 'Bob', age: 25 },
{ name: 'Charlie', age: 35 },
];

// registerSource only binds the array to a name. It copies nothing.
db.registerSource(['users'], users);

const result = db.query(`
SELECT name, age
FROM users
WHERE age > 30
`);
// result.schema -> ['name', 'age']
// result.data -> [{ name: 'Charlie', age: 35 }]

What the package contains​

The core and each language ship as separate packages, so a browser bundle holds only the languages and extensions you import.

Documentation​

The full documentation lives at filipjezek.github.io/dortdb. It covers the architecture, the unified algebra that every language compiles to, and the extension model. The generated API reference has the exact type signatures.

The live demo builds queries in the browser and shows the plan for each one.

Modules​