chDB nodejs bindings for fun and hacking.
- experimental, unstable, subject to changes
- requires
libchdb
on the system - 👋 C/Node developer? Jump in and help us evolve this prototype into a stable module!
const chdb = require("chdb-node");
// Query (ephemeral)
const db = new chdb.db("CSV") // format
var result = db.query("SELECT version()");
console.log(result) // 23.10.1.1
// Query Session (persistent)
const dbdisk = new chdb.db("CSV", "/tmp/mysession") // format, storage path
dbdisk.session("CREATE FUNCTION IF NOT EXISTS hello AS () -> 'chDB'");
var result = dbdisk.session("SELECT hello()", "TabSeparated"); // optional format override
console.log(result) // chDB
const chdb = require("chdb-node").chdb;
var result = chdb.Execute("SELECT version()", "CSV");
console.log(result) // 23.10.1.1
const chdb = require("chdb-node").chdb;
chdb.Session("CREATE FUNCTION IF NOT EXISTS hello AS () -> 'chDB'")
var result = = chdb.Session("SELECT hello();")
console.log(result) // chDB
⚠️ Sessions persist table data to disk. You can specifypath
to implement auto-cleanup strategies:
const temperment = require("temperment");
const tmp = temperment.directory();
chdb.Session("CREATE FUNCTION IF NOT EXISTS hello AS () -> 'chDB'", "CSV", tmp)
var result = = chdb.Session("SELECT hello();")
console.log(result) // chDB
tmp.cleanup.sync();