0.0.79 • Published 2 years ago

node-duckdb v0.0.79

Weekly downloads
278
License
MIT
Repository
github
Last release
2 years ago

Node-DuckDB

API | Code Of Conduct | Contributing | Developing

Production ready DuckDB Node.js library written in TypeScript.

Overview

  • This is a library that adds support for DuckDB to NodeJS.
  • It comes preinstalled with DuckDB ver 0.2.2 with the parquet extension included.
  • Has been tested to work with Linux and MacOS.
  • Currently supports NodeJS v12.17.0+.
  • Supports BIGINT and HUGEINT types as BigInt.
  • Provides a Promise-based API and a Stream-based one.

Getting Started

Installation

To use Node-DuckDB in your project:

npm i node-duckdb

or

yarn add node-duckdb

Note: this will download the duckdb binary for your platform (currently Linux and MacOS are supported), or if it's not available will attempt to build it.

Usage

Using node-duckdb is easy:

const db = new DuckDB();
const connection = new Connection(db);
await connection.execute("SELECT * FROM mytable;");

Promise API example

An example using promises:

import { Connection, DuckDB } from "node-duckdb";

async function queryDatabaseWithIterator() {
  // create new database in memory
  const db = new DuckDB();
  // create a new connection to the database
  const connection = new Connection(db);

  // perform some queries
  await connection.executeIterator("CREATE TABLE people(id INTEGER, name VARCHAR);");
  await connection.executeIterator("INSERT INTO people VALUES (1, 'Mark'), (2, 'Hannes'), (3, 'Bob');");
  const result = await connection.executeIterator("SELECT * FROM people;");

  // fetch and print result
  console.log(result.fetchAllRows());

  // release resources
  connection.close();
  db.close();
}

queryDatabaseWithIterator();

Streaming API example

Getting a stream of data from DuckDB and piping into a destination stream:

import { Connection, DuckDB } from "node-duckdb";
const db = new DuckDB();
const connection = new Connection(db);
const resultStream = await connection.execute("SELECT * FROM people;");
// get destinationStream somehow
resultStream.pipe(destinationStream);

Complete sample project

You can see a complete sample project using node-duckdb here.

API

API documentation is found here.

Known Issues

Known issues and their workarounds are found here.

Developing

Documentation for developers is found here.

0.0.80

2 years ago

0.0.81

2 years ago

0.0.79

2 years ago

0.0.78

3 years ago

0.0.76

3 years ago

0.0.74

3 years ago

0.0.75

3 years ago

0.0.77

3 years ago

0.0.73

3 years ago

0.0.72

3 years ago

0.0.70

3 years ago

0.0.71

3 years ago

0.0.68

3 years ago

0.0.69

3 years ago

0.0.67

3 years ago

0.0.66

3 years ago

0.0.64

3 years ago

0.0.61

3 years ago

0.0.57

3 years ago

0.0.58

3 years ago

0.0.59

3 years ago

0.0.56

3 years ago

0.0.55-test

3 years ago

0.0.53-test

3 years ago

0.0.53-test2

3 years ago

0.0.51-test

3 years ago

0.0.51-test3

3 years ago

0.0.41

3 years ago

0.0.1

3 years ago

0.0.40

3 years ago

0.0.40-test

3 years ago

0.0.39

3 years ago

0.0.37

3 years ago

0.0.38

3 years ago

0.0.36

3 years ago

0.0.35

3 years ago

0.0.34

3 years ago

0.0.33

3 years ago