CSharpDB.Client
1.9.0
Prefix Reserved
See the version list below for details.
dotnet add package CSharpDB.Client --version 1.9.0
NuGet\Install-Package CSharpDB.Client -Version 1.9.0
<PackageReference Include="CSharpDB.Client" Version="1.9.0" />
<PackageVersion Include="CSharpDB.Client" Version="1.9.0" />
<PackageReference Include="CSharpDB.Client" />
paket add CSharpDB.Client --version 1.9.0
#r "nuget: CSharpDB.Client, 1.9.0"
#:package CSharpDB.Client@1.9.0
#addin nuget:?package=CSharpDB.Client&version=1.9.0
#tool nuget:?package=CSharpDB.Client&version=1.9.0
CSharpDB.Client
CSharpDB.Client is the authoritative database API for CSharpDB.
It owns the public client contract used to talk to a database, while transport and lower-level implementation details stay behind that boundary.
Current Direction
CSharpDB.Clientis now the real implementation layer for database access.CSharpDB.Serviceis a compatibility facade over the client while the repo retires direct service usage.DirectandGrpcare implemented transports today.Http,Tcp, andNamedPipesremain future transport targets.
Current Transport Model
Create the client with CSharpDbClientOptions:
var client = CSharpDbClient.Create(new CSharpDbClientOptions
{
Transport = CSharpDbTransport.Direct,
DataSource = "csharpdb.db"
});
The transport can be selected explicitly with Transport. If it is omitted, the client infers it from Endpoint and otherwise defaults to direct.
Direct resolution currently accepts:
Endpointas a file pathEndpointasfile://...DataSourceConnectionStringcontainingData Source=...
Resolution rules:
- direct is the default when transport cannot be inferred from a network endpoint
- supplied direct inputs must resolve to the same target
http://andhttps://inferHttpunlessTransport = CSharpDbTransport.Grpcis set explicitlytcp://,pipe://, andnpipe://infer their corresponding future transportGrpcuseshttp://orhttps://endpoints and talks toCSharpDB.DaemonHttp,Tcp, andNamedPipesstill validate their endpoint shape and then fail with a not-implemented errorHttpClientis supported forGrpcand reserved for futureHttp
Example gRPC selection:
var client = CSharpDbClient.Create(new CSharpDbClientOptions
{
Transport = CSharpDbTransport.Grpc,
Endpoint = "https://localhost:5001"
});
This resolves to the dedicated CSharpDB.Daemon gRPC host.
Supported Surface
The current ICSharpDbClient includes:
- database info and data source metadata
- tables, schemas, row counts, browse, and primary-key lookup
- row insert, update, and delete
- table and column DDL
- indexes, views, and triggers
- saved queries
- procedures and procedure execution
- SQL execution with multi-statement splitting
- client-managed transaction sessions
- document collections
- checkpoint
- storage diagnostics
Implementation Notes
- The direct client depends on
CSharpDB.Engine,CSharpDB.Sql, andCSharpDB.Storage.Diagnostics. CSharpDB.Clientdoes not referenceCSharpDB.Data.- The gRPC transport uses generated protobuf RPC methods, not a generic JSON tunnel.
- Dynamic values such as row cells, procedure args, and collection documents are carried through a recursive protobuf value contract that preserves blobs and nested objects.
- Schema, data, procedure, and saved-query operations all run through direct engine access.
- Collection access and client-managed transaction sessions use direct engine instances.
- Internal tables such as
__procedures,__saved_queries, and collection backing tables are hidden from normal table listing.
Dependency Injection
services.AddCSharpDbClient(new CSharpDbClientOptions
{
DataSource = "csharpdb.db"
});
or
services.AddCSharpDbClient(sp => new CSharpDbClientOptions
{
ConnectionString = "Data Source=csharpdb.db"
});
Design Rule
New database-facing functionality should be added here first.
Host-specific concerns should not create a second authoritative API beside CSharpDB.Client.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- CSharpDB.Engine (>= 1.9.0)
- CSharpDB.Sql (>= 1.9.0)
- CSharpDB.Storage.Diagnostics (>= 1.9.0)
- Google.Protobuf (>= 3.29.3)
- Grpc.Net.Client (>= 2.71.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on CSharpDB.Client:
| Package | Downloads |
|---|---|
|
CSharpDB.Data
ADO.NET provider for CSharpDB. Standard DbConnection, DbCommand, and DbDataReader with parameterized queries and transactions. |
|
|
CSharpDB
All-in-one package for CSharpDB application development. Includes the unified client, engine, ADO.NET provider, and diagnostics. |
|
|
CSharpDB.Service
Deprecated compatibility facade over CSharpDB.Client for existing hosts. Planned for removal in v2.0.0. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 3.1.2 | 42 | 4/15/2026 |
| 3.1.0 | 59 | 4/15/2026 |
| 3.0.0 | 98 | 4/8/2026 |
| 2.9.1 | 85 | 4/7/2026 |
| 2.8.1 | 87 | 4/6/2026 |
| 2.8.0 | 86 | 4/4/2026 |
| 2.7.0 | 97 | 3/31/2026 |
| 2.6.0 | 89 | 3/29/2026 |
| 2.5.0 | 185 | 3/28/2026 |
| 2.4.0 | 89 | 3/24/2026 |
| 2.3.0 | 86 | 3/22/2026 |
| 2.2.0 | 88 | 3/21/2026 |
| 2.0.1 | 97 | 3/14/2026 |
| 2.0.0 | 88 | 3/13/2026 |
| 1.9.0 | 108 | 3/12/2026 |
| 1.8.0 | 109 | 3/11/2026 |
| 1.7.0 | 106 | 3/8/2026 |