
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');
var result;
// Query (ephemeral)
const db = new chdb.db('CSV') // format
result = db.query("SELECT version()");
console.log(result)
// Query Session (persistent)
const dbdisk = new chdb.db('CSV', '/tmp/mysession') // format, storage path
dbdisk.session("CREATE FUNCTION IF NOT EXISTS hello AS () -> 'chDB'");
result = dbdisk.session("SELECT hello()", "TabSeparated"); // optional format override
console.log(result)
const chdb = require('chdb-node').chdb;
var result = chdb.Execute('SELECT version()', 'CSV');
console.log(result) // 23.6.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
path
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();