Skip to content

Commit f0e42d4

Browse files
authored
Merge pull request #4342 from ClickHouse/victor_chdb_doc
update chdb docs
2 parents 57e6add + e43777f commit f0e42d4

File tree

11 files changed

+1638
-280
lines changed

11 files changed

+1638
-280
lines changed

docs/chdb/getting-started.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,7 @@ We could write the following code:
339339
df["likeDislikeRatio"] = df["likeCount"] / df["dislikeCount"]
340340
```
341341

342-
## Querying a Pandas DataFrame {#querying-a-pandas-dataframe}
342+
## Querying a Pandas dataframe {#querying-a-pandas-dataframe}
343343

344344
We can then query that DataFrame from chDB:
345345

docs/chdb/index.md

Lines changed: 28 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,22 @@ description: 'chDB is an in-process SQL OLAP Engine powered by ClickHouse'
66
keywords: ['chdb', 'embedded', 'clickhouse-lite', 'in-process', 'in process']
77
---
88

9+
import Image from '@theme/IdealImage';
10+
import dfBench from '@site/static/images/chdb/df_bench.png';
11+
912
# chDB
1013

1114
chDB is a fast in-process SQL OLAP Engine powered by [ClickHouse](https://github.com/clickhouse/clickhouse).
1215
You can use it when you want to get the power of ClickHouse in a programming language without needing to connect to a ClickHouse server.
1316

17+
## Key features {#key-features}
18+
19+
- **In-process SQL OLAP Engine** - Powered by ClickHouse, no need to install ClickHouse server
20+
- **Multiple data formats** - Input & Output support for Parquet, CSV, JSON, Arrow, ORC and [70+ more formats](/interfaces/formats)
21+
- **Minimized data copy** - From C++ to Python with [python memoryview](https://docs.python.org/3/c-api/memoryview.html)
22+
- **Rich Python Ecosystem Integration** - Native support for Pandas, Arrow, DB API 2.0, seamlessly fits into existing data science workflows
23+
- **Zero dependencies** - No need for external database installations
24+
1425
## What languages are supported by chDB? {#what-languages-are-supported-by-chdb}
1526

1627
chDB has the following language bindings:
@@ -20,14 +31,11 @@ chDB has the following language bindings:
2031
* [Rust](install/rust.md)
2132
* [NodeJS](install/nodejs.md)
2233
* [Bun](install/bun.md)
23-
24-
## What input and output formats are supported? {#what-input-and-output-formats-are-supported}
25-
26-
chDB supports Parquet, CSV, JSON, Apache Arrow, ORC, and [60+ more formats](/interfaces/formats).
34+
* [C and C++](install/c.md)
2735

2836
## How do I get started? {#how-do-i-get-started}
2937

30-
* If you're using [Go](install/go.md), [Rust](install/rust.md), [NodeJS](install/nodejs.md), or [Bun](install/bun.md), take a look at the corresponding language pages.
38+
* If you're using [Go](install/go.md), [Rust](install/rust.md), [NodeJS](install/nodejs.md), [Bun](install/bun.md) or [C and C++](install/c.md), take a look at the corresponding language pages.
3139
* If you're using Python, see the [getting started developer guide](getting-started.md). There are also guides showing how to do common tasks like:
3240
* [JupySQL](guides/jupysql.md)
3341
* [Querying Pandas](guides/querying-pandas.md)
@@ -37,12 +45,6 @@ chDB supports Parquet, CSV, JSON, Apache Arrow, ORC, and [60+ more formats](/int
3745
* [Querying remote ClickHouse](guides/query-remote-clickhouse.md)
3846
* [Using clickhouse-local database](guides/clickhouse-local.md)
3947

40-
<!-- ## What is chDB?
41-
42-
chDB lets you
43-
44-
- Supports Python DB API 2.0: [example](https://github.com/chdb-io/chdb/blob/main/examples/dbapi.py) and [custom UDF Functions](https://github.com/chdb-io/chdb/blob/main/examples/udf.py) -->
45-
4648
## An introductory video {#an-introductory-video}
4749

4850
You can listen to a brief project introduction to chDB, courtesy of Alexey Milovidov, the original creator of ClickHouse:
@@ -51,12 +53,23 @@ You can listen to a brief project introduction to chDB, courtesy of Alexey Milov
5153
<iframe width="560" height="315" src="https://www.youtube.com/embed/cuf_hYn7dqU?si=SzUm7RW4Ae5-YwFo" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
5254
</div>
5355

56+
## Performance benchmarks {#performance-benchmarks}
57+
58+
chDB delivers exceptional performance across different scenarios:
59+
60+
- **[ClickBench of embedded engines](https://benchmark.clickhouse.com/#eyJzeXN0ZW0iOnsiQXRoZW5hIChwYXJ0aXRpb25lZCkiOnRydWUsIkF0aGVuYSAoc2luZ2xlKSI6dHJ1ZSwiQXVyb3JhIGZvciBNeVNRTCI6dHJ1ZSwiQXVyb3JhIGZvciBQb3N0Z3JlU1FMIjp0cnVlLCJCeXRlSG91c2UiOnRydWUsImNoREIiOnRydWUsIkNpdHVzIjp0cnVlLCJjbGlja2hvdXNlLWxvY2FsIChwYXJ0aXRpb25lZCkiOnRydWUsImNsaWNraG91c2UtbG9jYWwgKHNpbmdsZSkiOnRydWUsIkNsaWNrSG91c2UiOnRydWUsIkNsaWNrSG91c2UgKHR1bmVkKSI6dHJ1ZSwiQ2xpY2tIb3VzZSAoenN0ZCkiOnRydWUsIkNsaWNrSG91c2UgQ2xvdWQiOnRydWUsIkNsaWNrSG91c2UgKHdlYikiOnRydWUsIkNyYXRlREIiOnRydWUsIkRhdGFiZW5kIjp0cnVlLCJEYXRhRnVzaW9uIChzaW5nbGUpIjp0cnVlLCJBcGFjaGUgRG9yaXMiOnRydWUsIkRydWlkIjp0cnVlLCJEdWNrREIgKFBhcnF1ZXQpIjp0cnVlLCJEdWNrREIiOnRydWUsIkVsYXN0aWNzZWFyY2giOnRydWUsIkVsYXN0aWNzZWFyY2ggKHR1bmVkKSI6ZmFsc2UsIkdyZWVucGx1bSI6dHJ1ZSwiSGVhdnlBSSI6dHJ1ZSwiSHlkcmEiOnRydWUsIkluZm9icmlnaHQiOnRydWUsIktpbmV0aWNhIjp0cnVlLCJNYXJpYURCIENvbHVtblN0b3JlIjp0cnVlLCJNYXJpYURCIjpmYWxzZSwiTW9uZXREQiI6dHJ1ZSwiTW9uZ29EQiI6dHJ1ZSwiTXlTUUwgKE15SVNBTSkiOnRydWUsIk15U1FMIjp0cnVlLCJQaW5vdCI6dHJ1ZSwiUG9zdGdyZVNRTCI6dHJ1ZSwiUG9zdGdyZVNRTCAodHVuZWQpIjpmYWxzZSwiUXVlc3REQiAocGFydGl0aW9uZWQpIjp0cnVlLCJRdWVzdERCIjp0cnVlLCJSZWRzaGlmdCI6dHJ1ZSwiU2VsZWN0REIiOnRydWUsIlNpbmdsZVN0b3JlIjp0cnVlLCJTbm93Zmxha2UiOnRydWUsIlNRTGl0ZSI6dHJ1ZSwiU3RhclJvY2tzIjp0cnVlLCJUaW1lc2NhbGVEQiAoY29tcHJlc3Npb24pIjp0cnVlLCJUaW1lc2NhbGVEQiI6dHJ1ZX0sInR5cGUiOnsic3RhdGVsZXNzIjpmYWxzZSwibWFuYWdlZCI6ZmFsc2UsIkphdmEiOmZhbHNlLCJjb2x1bW4tb3JpZW50ZWQiOmZhbHNlLCJDKysiOmZhbHNlLCJNeVNRTCBjb21wYXRpYmxlIjpmYWxzZSwicm93LW9yaWVudGVkIjpmYWxzZSwiQyI6ZmFsc2UsIlBvc3RncmVTUUwgY29tcGF0aWJsZSI6ZmFsc2UsIkNsaWNrSG91c2UgZGVyaXZhdGl2ZSI6ZmFsc2UsImVtYmVkZGVkIjp0cnVlLCJzZXJ2ZXJsZXNzIjpmYWxzZSwiUnVzdCI6ZmFsc2UsInNlYXJjaCI6ZmFsc2UsImRvY3VtZW50IjpmYWxzZSwidGltZS1zZXJpZXMiOmZhbHNlfSwibWFjaGluZSI6eyJzZXJ2ZXJsZXNzIjp0cnVlLCIxNmFjdSI6dHJ1ZSwiTCI6dHJ1ZSwiTSI6dHJ1ZSwiUyI6dHJ1ZSwiWFMiOnRydWUsImM2YS5tZXRhbCwgNTAwZ2IgZ3AyIjp0cnVlLCJjNmEuNHhsYXJnZSwgNTAwZ2IgZ3AyIjp0cnVlLCJjNS40eGxhcmdlLCA1MDBnYiBncDIiOnRydWUsIjE2IHRocmVhZHMiOnRydWUsIjIwIHRocmVhZHMiOnRydWUsIjI0IHRocmVhZHMiOnRydWUsIjI4IHRocmVhZHMiOnRydWUsIjMwIHRocmVhZHMiOnRydWUsIjQ4IHRocmVhZHMiOnRydWUsIjYwIHRocmVhZHMiOnRydWUsIm01ZC4yNHhsYXJnZSI6dHJ1ZSwiYzVuLjR4bGFyZ2UsIDIwMGdiIGdwMiI6dHJ1ZSwiYzZhLjR4bGFyZ2UsIDE1MDBnYiBncDIiOnRydWUsImRjMi44eGxhcmdlIjp0cnVlLCJyYTMuMTZ4bGFyZ2UiOnRydWUsInJhMy40eGxhcmdlIjp0cnVlLCJyYTMueGxwbHVzIjp0cnVlLCJTMjQiOnRydWUsIlMyIjp0cnVlLCIyWEwiOnRydWUsIjNYTCI6dHJ1ZSwiNFhMIjp0cnVlLCJYTCI6dHJ1ZX0sImNsdXN0ZXJfc2l6ZSI6eyIxIjp0cnVlLCIyIjp0cnVlLCI0Ijp0cnVlLCI4Ijp0cnVlLCIxNiI6dHJ1ZSwiMzIiOnRydWUsIjY0Ijp0cnVlLCIxMjgiOnRydWUsInNlcnZlcmxlc3MiOnRydWUsInVuZGVmaW5lZCI6dHJ1ZX0sIm1ldHJpYyI6ImhvdCIsInF1ZXJpZXMiOlt0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlXX0=)** - Comprehensive performance comparison
61+
- **[DataFrame Processing Performance](https://colab.research.google.com/drive/1FogLujJ_-ds7RGurDrUnK-U0IW8a8Qd0)** - Comparative analysis with other DataFrame libraries
62+
- **[DataFrame Benchmark](https://benchmark.clickhouse.com/#eyJzeXN0ZW0iOnsiQWxsb3lEQiI6dHJ1ZSwiQWxsb3lEQiAodHVuZWQpIjp0cnVlLCJBdGhlbmEgKHBhcnRpdGlvbmVkKSI6dHJ1ZSwiQXRoZW5hIChzaW5nbGUpIjp0cnVlLCJBdXJvcmEgZm9yIE15U1FMIjp0cnVlLCJBdXJvcmEgZm9yIFBvc3RncmVTUUwiOnRydWUsIkJ5Q29uaXR5Ijp0cnVlLCJCeXRlSG91c2UiOnRydWUsImNoREIgKERhdGFGcmFtZSkiOnRydWUsImNoREIgKFBhcnF1ZXQsIHBhcnRpdGlvbmVkKSI6dHJ1ZSwiY2hEQiI6dHJ1ZSwiQ2l0dXMiOnRydWUsIkNsaWNrSG91c2UgQ2xvdWQgKGF3cykiOnRydWUsIkNsaWNrSG91c2UgQ2xvdWQgKGF6dXJlKSI6dHJ1ZSwiQ2xpY2tIb3VzZSBDbG91ZCAoZ2NwKSI6dHJ1ZSwiQ2xpY2tIb3VzZSAoZGF0YSBsYWtlLCBwYXJ0aXRpb25lZCkiOnRydWUsIkNsaWNrSG91c2UgKGRhdGEgbGFrZSwgc2luZ2xlKSI6dHJ1ZSwiQ2xpY2tIb3VzZSAoUGFycXVldCwgcGFydGl0aW9uZWQpIjp0cnVlLCJDbGlja0hvdXNlIChQYXJxdWV0LCBzaW5nbGUpIjp0cnVlLCJDbGlja0hvdXNlICh3ZWIpIjp0cnVlLCJDbGlja0hvdXNlIjp0cnVlLCJDbGlja0hvdXNlICh0dW5lZCkiOnRydWUsIkNsaWNrSG91c2UgKHR1bmVkLCBtZW1vcnkpIjp0cnVlLCJDbG91ZGJlcnJ5Ijp0cnVlLCJDcmF0ZURCIjp0cnVlLCJDcnVuY2h5IEJyaWRnZSBmb3IgQW5hbHl0aWNzIChQYXJxdWV0KSI6dHJ1ZSwiRGF0YWJlbmQiOnRydWUsIkRhdGFGdXNpb24gKFBhcnF1ZXQsIHBhcnRpdGlvbmVkKSI6dHJ1ZSwiRGF0YUZ1c2lvbiAoUGFycXVldCwgc2luZ2xlKSI6dHJ1ZSwiQXBhY2hlIERvcmlzIjp0cnVlLCJEcnVpZCI6dHJ1ZSwiRHVja0RCIChEYXRhRnJhbWUpIjp0cnVlLCJEdWNrREIgKFBhcnF1ZXQsIHBhcnRpdGlvbmVkKSI6dHJ1ZSwiRHVja0RCIjp0cnVlLCJFbGFzdGljc2VhcmNoIjp0cnVlLCJFbGFzdGljc2VhcmNoICh0dW5lZCkiOmZhbHNlLCJHbGFyZURCIjp0cnVlLCJHcmVlbnBsdW0iOnRydWUsIkhlYXZ5QUkiOnRydWUsIkh5ZHJhIjp0cnVlLCJJbmZvYnJpZ2h0Ijp0cnVlLCJLaW5ldGljYSI6dHJ1ZSwiTWFyaWFEQiBDb2x1bW5TdG9yZSI6dHJ1ZSwiTWFyaWFEQiI6ZmFsc2UsIk1vbmV0REIiOnRydWUsIk1vbmdvREIiOnRydWUsIk1vdGhlcmR1Y2siOnRydWUsIk15U1FMIChNeUlTQU0pIjp0cnVlLCJNeVNRTCI6dHJ1ZSwiT3hsYSI6dHJ1ZSwiUGFuZGFzIChEYXRhRnJhbWUpIjp0cnVlLCJQYXJhZGVEQiAoUGFycXVldCwgcGFydGl0aW9uZWQpIjp0cnVlLCJQYXJhZGVEQiAoUGFycXVldCwgc2luZ2xlKSI6dHJ1ZSwiUGlub3QiOnRydWUsIlBvbGFycyAoRGF0YUZyYW1lKSI6dHJ1ZSwiUG9zdGdyZVNRTCAodHVuZWQpIjpmYWxzZSwiUG9zdGdyZVNRTCI6dHJ1ZSwiUXVlc3REQiAocGFydGl0aW9uZWQpIjp0cnVlLCJRdWVzdERCIjp0cnVlLCJSZWRzaGlmdCI6dHJ1ZSwiU2luZ2xlU3RvcmUiOnRydWUsIlNub3dmbGFrZSI6dHJ1ZSwiU1FMaXRlIjp0cnVlLCJTdGFyUm9ja3MiOnRydWUsIlRhYmxlc3BhY2UiOnRydWUsIlRlbWJvIE9MQVAgKGNvbHVtbmFyKSI6dHJ1ZSwiVGltZXNjYWxlREIgKGNvbXByZXNzaW9uKSI6dHJ1ZSwiVGltZXNjYWxlREIiOnRydWUsIlVtYnJhIjp0cnVlfSwidHlwZSI6eyJDIjpmYWxzZSwiY29sdW1uLW9yaWVudGVkIjpmYWxzZSwiUG9zdGdyZVNRTCBjb21wYXRpYmxlIjpmYWxzZSwibWFuYWdlZCI6ZmFsc2UsImdjcCI6ZmFsc2UsInN0YXRlbGVzcyI6ZmFsc2UsIkphdmEiOmZhbHNlLCJDKysiOmZhbHNlLCJNeVNRTCBjb21wYXRpYmxlIjpmYWxzZSwicm93LW9yaWVudGVkIjpmYWxzZSwiQ2xpY2tIb3VzZSBkZXJpdmF0aXZlIjpmYWxzZSwiZW1iZWRkZWQiOmZhbHNlLCJzZXJ2ZXJsZXNzIjpmYWxzZSwiZGF0YWZyYW1lIjp0cnVlLCJhd3MiOmZhbHNlLCJhenVyZSI6ZmFsc2UsImFuYWx5dGljYWwiOmZhbHNlLCJSdXN0IjpmYWxzZSwic2VhcmNoIjpmYWxzZSwiZG9jdW1lbnQiOmZhbHNlLCJzb21ld2hhdCBQb3N0Z3JlU1FMIGNvbXBhdGlibGUiOmZhbHNlLCJ0aW1lLXNlcmllcyI6ZmFsc2V9LCJtYWNoaW5lIjp7IjE2IHZDUFUgMTI4R0IiOnRydWUsIjggdkNQVSA2NEdCIjp0cnVlLCJzZXJ2ZXJsZXNzIjp0cnVlLCIxNmFjdSI6dHJ1ZSwiYzZhLjR4bGFyZ2UsIDUwMGdiIGdwMiI6dHJ1ZSwiTCI6dHJ1ZSwiTSI6dHJ1ZSwiUyI6dHJ1ZSwiWFMiOnRydWUsImM2YS5tZXRhbCwgNTAwZ2IgZ3AyIjp0cnVlLCIxOTJHQiI6dHJ1ZSwiMjRHQiI6dHJ1ZSwiMzYwR0IiOnRydWUsIjQ4R0IiOnRydWUsIjcyMEdCIjp0cnVlLCI5NkdCIjp0cnVlLCJkZXYiOnRydWUsIjcwOEdCIjp0cnVlLCJjNW4uNHhsYXJnZSwgNTAwZ2IgZ3AyIjp0cnVlLCJBbmFseXRpY3MtMjU2R0IgKDY0IHZDb3JlcywgMjU2IEdCKSI6dHJ1ZSwiYzUuNHhsYXJnZSwgNTAwZ2IgZ3AyIjp0cnVlLCJjNmEuNHhsYXJnZSwgMTUwMGdiIGdwMiI6dHJ1ZSwiY2xvdWQiOnRydWUsImRjMi44eGxhcmdlIjp0cnVlLCJyYTMuMTZ4bGFyZ2UiOnRydWUsInJhMy40eGxhcmdlIjp0cnVlLCJyYTMueGxwbHVzIjp0cnVlLCJTMiI6dHJ1ZSwiUzI0Ijp0cnVlLCIyWEwiOnRydWUsIjNYTCI6dHJ1ZSwiNFhMIjp0cnVlLCJYTCI6dHJ1ZSwiTDEgLSAxNkNQVSAzMkdCIjp0cnVlLCJjNmEuNHhsYXJnZSwgNTAwZ2IgZ3AzIjp0cnVlfSwiY2x1c3Rlcl9zaXplIjp7IjEiOnRydWUsIjIiOnRydWUsIjQiOnRydWUsIjgiOnRydWUsIjE2Ijp0cnVlLCIzMiI6dHJ1ZSwiNjQiOnRydWUsIjEyOCI6dHJ1ZSwic2VydmVybGVzcyI6dHJ1ZX0sIm1ldHJpYyI6ImhvdCIsInF1ZXJpZXMiOlt0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlXX0=)**
63+
64+
<Image img={dfBench} alt='DataFrame benchmark results' size="md"/>
65+
5466
## About chDB {#about-chdb}
5567

56-
- Read the full story about the birth of the chDB project on [Auxten's blog](https://clickhouse.com/blog/chdb-embedded-clickhouse-rocket-engine-on-a-bicycle)
57-
- Read about chDB and its use cases on the [Official ClickHouse Blog](https://clickhouse.com/blog/welcome-chdb-to-clickhouse)
68+
- Read the full story about the birth of the chDB project on [blog](https://clickhouse.com/blog/chdb-embedded-clickhouse-rocket-engine-on-a-bicycle)
69+
- Read about chDB and its use cases on the [Blog](https://clickhouse.com/blog/welcome-chdb-to-clickhouse)
5870
- Discover chDB in your browser using [codapi examples](https://antonz.org/trying-chdb/)
71+
- More examples see (https://github.com/chdb-io/chdb/tree/main/examples)
5972

60-
## What license does it use? {#what-license-does-it-use}
73+
## License {#license}
6174

62-
chDB is available under the Apache License, Version 2.0.
75+
chDB is available under the Apache License, Version 2.0. See [LICENSE](https://github.com/chdb-io/chdb/blob/main/LICENSE.txt) for more information.

docs/chdb/install/bun.md

Lines changed: 94 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,122 @@
11
---
2-
title: 'Installing chDB for Bun'
2+
title: 'chDB for Bun'
33
sidebar_label: 'Bun'
44
slug: /chdb/install/bun
5-
description: 'How to install chDB for Bun'
6-
keywords: ['chdb', 'embedded', 'clickhouse-lite', 'bun', 'install']
5+
description: 'How to install and use chDB with Bun runtime'
6+
keywords: ['chdb', 'bun', 'javascript', 'typescript', 'embedded', 'clickhouse', 'sql', 'olap']
77
---
88

9-
# Installing chDB for Bun
9+
# chDB for Bun
1010

11-
## Requirements {#requirements}
11+
chDB-bun provides experimental FFI (Foreign Function Interface) bindings for chDB, enabling you to run ClickHouse queries directly in your Bun applications with zero external dependencies.
1212

13-
Install [libchdb](https://github.com/chdb-io/chdb):
13+
## Installation {#installation}
14+
15+
### Step 1: Install system dependencies {#install-system-dependencies}
16+
17+
First, install the required system dependencies:
18+
19+
#### Install libchdb {#install-libchdb}
1420

1521
```bash
1622
curl -sL https://lib.chdb.io | bash
1723
```
1824

19-
## Install {#install}
25+
#### Install build tools {#install-build-tools}
2026

21-
See: [chdb-bun](https://github.com/chdb-io/chdb-bun)
27+
You'll need either `gcc` or `clang` installed on your system:
2228

23-
## GitHub repository {#github-repository}
29+
### Step 2: Install chDB-bun {#install-chdb-bun}
2430

25-
You can find the GitHub repository for the project at [chdb-io/chdb-bun](https://github.com/chdb-io/chdb-bun).
31+
```bash
32+
# Install from the GitHub repository
33+
bun add github:chdb-io/chdb-bun
34+
35+
# Or clone and build locally
36+
git clone https://github.com/chdb-io/chdb-bun.git
37+
cd chdb-bun
38+
bun install
39+
bun run build
40+
```
2641

2742
## Usage {#usage}
2843

29-
### Query(query, *format) (ephemeral) {#queryquery-format-ephemeral}
44+
chDB-bun supports two query modes: ephemeral queries for one-time operations and persistent sessions for maintaining database state.
45+
46+
### Ephemeral queries {#ephemeral-queries}
47+
48+
For simple, one-off queries that don't require persistent state:
3049

31-
```javascript
50+
```typescript
3251
import { query } from 'chdb-bun';
3352

34-
// Query (ephemeral)
35-
var result = query("SELECT version()", "CSV");
36-
console.log(result); // 23.10.1.1
53+
// Basic query
54+
const result = query("SELECT version()", "CSV");
55+
console.log(result); // "23.10.1.1"
56+
57+
// Query with different output formats
58+
const jsonResult = query("SELECT 1 as id, 'Hello' as message", "JSON");
59+
console.log(jsonResult);
60+
61+
// Query with calculations
62+
const mathResult = query("SELECT 2 + 2 as sum, pi() as pi_value", "Pretty");
63+
console.log(mathResult);
64+
65+
// Query system information
66+
const systemInfo = query("SELECT * FROM system.functions LIMIT 5", "CSV");
67+
console.log(systemInfo);
3768
```
3869

39-
<!-- vale ClickHouse.Headings = NO -->
40-
### Session.Query(query, *format) {#sessionqueryquery-format}
41-
<!-- vale ClickHouse.Headings = YES -->
70+
### Persistent sessions {#persistent-sessions}
4271

43-
```javascript
44-
import { Session } from 'chdb-bun';
45-
const sess = new Session('./chdb-bun-tmp');
72+
For complex operations that require maintaining state across queries:
4673

47-
// Query Session (persistent)
48-
sess.query("CREATE FUNCTION IF NOT EXISTS hello AS () -> 'Hello chDB'", "CSV");
49-
var result = sess.query("SELECT hello()", "CSV");
50-
console.log(result);
74+
```typescript
75+
import { Session } from 'chdb-bun';
5176

52-
// Before cleanup, you can find the database files in `./chdb-bun-tmp`
77+
// Create a session with persistent storage
78+
const sess = new Session('./chdb-bun-tmp');
5379

54-
sess.cleanup(); // cleanup session, this will delete the database
80+
try {
81+
// Create a database and table
82+
sess.query(`
83+
CREATE DATABASE IF NOT EXISTS mydb;
84+
CREATE TABLE IF NOT EXISTS mydb.users (
85+
id UInt32,
86+
name String,
87+
email String
88+
) ENGINE = MergeTree() ORDER BY id
89+
`, "CSV");
90+
91+
// Insert data
92+
sess.query(`
93+
INSERT INTO mydb.users VALUES
94+
(1, 'Alice', '[email protected]'),
95+
(2, 'Bob', '[email protected]'),
96+
(3, 'Charlie', '[email protected]')
97+
`, "CSV");
98+
99+
// Query the data
100+
const users = sess.query("SELECT * FROM mydb.users ORDER BY id", "JSON");
101+
console.log("Users:", users);
102+
103+
// Create and use custom functions
104+
sess.query("CREATE FUNCTION IF NOT EXISTS hello AS () -> 'Hello chDB'", "CSV");
105+
const greeting = sess.query("SELECT hello() as message", "Pretty");
106+
console.log(greeting);
107+
108+
// Aggregate queries
109+
const stats = sess.query(`
110+
SELECT
111+
COUNT(*) as total_users,
112+
MAX(id) as max_id,
113+
MIN(id) as min_id
114+
FROM mydb.users
115+
`, "JSON");
116+
console.log("Statistics:", stats);
117+
118+
} finally {
119+
// Always cleanup the session to free resources
120+
sess.cleanup(); // This deletes the database files
121+
}
55122
```

0 commit comments

Comments
 (0)