A .NET Core binding for chdb library.
Running on platforms: linux, osx, windows, and architectures: x64, arm64.
Note for windows users - there is no windows bild in sight, but you can still use it in WSL.
Currently the librairy is too large to be packed into a nuget package, so you need to install it manually. Use the update_libchdb.sh script to download the library for your platform and architecture.
# download the latest version of the library - it takes a version as an optional argument
./update_libchdb.sh
# install the package to your project
dotnet add package chdb
Also place the library in appropriate folder, and add following to your csproj file:
<ItemGroup>
<None Update="libchdb.so">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
Then you can use it in your code like this:
using ChDb;
var result = ChDb.Query("select version()");
Console.WriteLine(result.Text);
// 23.10.1.1
var s = new Session();
var result = s.Query("select * from system.formats where is_output = 1", "PrettyCompact");
// ┌─name───────────────────────────────────────┬─is_input─┬─is_output─┬─supports_parallel_parsing─┬─supports_parallel_formatting─┐
// │ Prometheus │ 0 │ 1 │ 0 │ 0 │
// │ PostgreSQLWire │ 0 │ 1 │ 0 │ 0 │
// │ MySQLWire │ 0 │ 1 │ 0 │ 0 │
// │ JSONEachRowWithProgress │ 0 │ 1 │ 0 │ 0 │
// │ ODBCDriver2 │ 0 │ 1 │ 0 │ 0 │
// ...
var result = s.Query("DESCRIBE s3('https://datasets-documentation.s3.eu-west-3.amazonaws.com/house_parquet/house_0.parquet')");
Console.WriteLine(result.Text);
or use it right in F# interactive with dotnet fsi
:
#r "nuget: chdb"
open ChDb
// print out result in the PrettyCompact format by default
let result = ChDb.Query "select version()"
printfn "%s" result.Text
// or save result to a text or binary file in any supported format
let result = ChDb.Query("select * from system.formats where is_output = 1", "CSVWithNames")
System.IO.File.WriteAllBytes("supported_formats.csv", result.Buf)
This is a dotnet tool, running chdb library.
Probably you better served using the clickhouse client and run clickhouse local
, but maybe it is more useful in some cases.
Requires .NET SDK 6.0 or later.
dotnet tool install --global chdb-tool
OS supported: linux, osx ARCH supported: x64, arm64
Try any of this commands lines to see which output you get.
chdb
chdb --version
chdb --help
chdb "select version()"
chdb "select * from system.formats where is_output = 1" PrettyCompact
./update_libchdb.sh [v1.2.1]
cp libchdb.so src/chdb/
dotnet build -c Release
dotnet test -c Release
dotnet pack -c Release
dotnet nuget add source ./nupkg --name chdb
dotnet tool update -g chdb-tool
chdb --version