Comment installer et utiliser chDB avec l’environnement d’exécution Bun
chDB-bun fournit des bindings FFI (Foreign Function Interface) expérimentaux pour chDB, ce qui vous permet d’exécuter des requêtes ClickHouse directement dans vos applications Bun, sans dépendance externe.
Vous devez disposer de gcc ou de clang sur votre système :
2
Installer chDB-bun
# Installer depuis le dépôt GitHubbun add github:chdb-io/chdb-bun# Ou cloner et compiler localementgit clone https://github.com/chdb-io/chdb-bun.gitcd chdb-bunbun installbun run build
chDB-bun prend en charge deux modes de requête : les requêtes éphémères pour les opérations ponctuelles et les sessions persistantes pour conserver l’état de la base de données.
Pour les opérations complexes qui nécessitent de préserver l’état entre les requêtes :
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}