Self-contained ClickHouse gRPC client built with pure C#, including generated protobuf stubs.
$ dotnet add package Clickhouse.Pure.GrpcUnofficial, simple and efficient driver for Clickhouse. Less memory allocations, native data format, column oriented API.
Currently, in the early stage of development.
In my experience, ClickHouse.Client and its successor still carry too much legacy .NET slop. ORM? ADO? These abstractions don’t add much value for ClickHouse in 2025+. Their APIs make efficient data ingestion less obvious, and I’ve seen unnecessary heap churn and overly defensive code trying to support every platform.
I personally prefer paradigm of clickhouse-go - it feels simpler, faster, and more aligned with ClickHouse itself.
This project aims to be intentionally minimal yet powerful for modern .NET apps. That’s just my take, though - if the existing drivers work well for you, use what fits best.
Warning: For anyone who accidentally lands on this driver: parts of this codebase were vibecoded (written fast and loose). There are probably bugs. Don't blindly deploy this to production without thorough testing in your own environment. Run your own tests, benchmark your workloads, and make sure it actually works for your use case first. The API may also change significantly in future versions
This driver is fast. Like, really fast compared to the official one. (From x3 to x10 depending on data type and row count.)
Check out more detailed benchmark results in the Single Column Table and Complex Table.
The full mapping table lives in TYPES.md.
All the code samples is here USAGE.md.
This driver should work with any ClickHouse version that's currently receiving updates.
Check ClickHouse's page for the list of supported versions.
Big thanks to the ClickHouse Go driver team - learned a lot from their native format implementation.