يوفّر chDB-bun واجهات ربط FFI (Foreign Function Interface) تجريبية لـ chDB، ما يتيح لك تشغيل استعلامات ClickHouse مباشرةً داخل تطبيقات Bun من دون أي تبعيات خارجية.
للعمليات المعقدة التي تتطلب الحفاظ على الحالة عبر الاستعلامات:
import { Session } from 'chdb-bun';// Create a session with persistent storageconst sess = new Session('./chdb-bun-tmp');try { // Create a database and table sess.query(` CREATE DATABASE IF NOT EXISTS mydb; CREATE TABLE IF NOT EXISTS mydb.users ( id UInt32, name String, email String ) ENGINE = MergeTree() ORDER BY id `, "CSV"); // Insert data sess.query(` INSERT INTO mydb.users VALUES (1, 'Alice', 'alice@example.com'), (2, 'Bob', 'bob@example.com'), (3, 'Charlie', 'charlie@example.com') `, "CSV"); // Query the data const users = sess.query("SELECT * FROM mydb.users ORDER BY id", "JSON"); console.log("Users:", users); // Create and use custom functions sess.query("CREATE FUNCTION IF NOT EXISTS hello AS () -> 'Hello chDB'", "CSV"); const greeting = sess.query("SELECT hello() as message", "Pretty"); console.log(greeting); // Aggregate queries const stats = sess.query(` SELECT COUNT(*) as total_users, MAX(id) as max_id, MIN(id) as min_id FROM mydb.users `, "JSON"); console.log("Statistics:", stats);} finally { // Always cleanup the session to free resources sess.cleanup(); // This deletes the database files}