https://github.com/roeap/flight-sql-client-node
A Flight SQL client for Node.js
https://github.com/roeap/flight-sql-client-node
apache-arrow arrow-flight nodejs
Last synced: 12 months ago
JSON representation
A Flight SQL client for Node.js
- Host: GitHub
- URL: https://github.com/roeap/flight-sql-client-node
- Owner: roeap
- License: mit
- Created: 2023-09-19T11:37:07.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-11-26T10:15:21.000Z (over 2 years ago)
- Last Synced: 2025-02-15T09:08:02.996Z (about 1 year ago)
- Topics: apache-arrow, arrow-flight, nodejs
- Language: Rust
- Homepage:
- Size: 1.11 MB
- Stars: 4
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# `@lakehouse-rs/flight-sql-client`

[](https://www.npmjs.com/package/@lakehouse-rs/flight-sql-client)
A client library for interacting with [Arrow Flight SQL] enabled databases from Node.js.
This library provides a thin wrapper around the flight-sql client implementation in
the [arrow-flight] crate. Node bindings are created with the help of [napi-rs].
## Usage
Install library
```sh
yarn add @lakehouse-rs/flight-sql-client
# or
npm install @lakehouse-rs/flight-sql-client
# or
pnpm add @lakehouse-rs/flight-sql-client
```
Create a new client instance
```ts
import { ClientOptions, createFlightSqlClient } from '@lakehouse-rs/flight-sql-client';
import { tableFromIPC } from 'apache-arrow';
const options: ClientOptions = {
username: 'flight_username',
password: 'testing123',
tls: false,
host: '127.0.0.1',
port: 50051,
headers: [],
};
const client = await createFlightSqlClient(options);
```
Execute a query against the service
```ts
const buffer = await client.query('SELECT * FROM my_tyble');
const table = tableFromIPC(buffer);
```
Or inspect some server metadata
```ts
const buffer = await client.getTables({ includeSchema: true });
const table = tableFromIPC(buffer);
```
## Development
Requirements:
- Rust
- node.js >= 12
- Yarn
Install dependencies via
```sh
yarn install
```
Build native module
```sh
yarn build
```
Run tests
```sh
yarn test
```
## Release
Releases are automated via github actions.
To create a release, first increment the version. (note the use of npm)
```sh
npm version
```
this will bump all version fields, and create a new commit with the version number.
Then trigger the release.
```sh
git push --follow-tags
```
[Arrow Flight SQL]: https://arrow.apache.org/docs/format/FlightSql.html
[arrow-flight]: https://crates.io/crates/arrow-flight
[napi-rs]: https://napi.rs/