CSharpDB.Client
2.0.1
Prefix Reserved
dotnet add package CSharpDB.Client --version 2.0.1
NuGet\Install-Package CSharpDB.Client -Version 2.0.1
<PackageReference Include="CSharpDB.Client" Version="2.0.1" />
<PackageVersion Include="CSharpDB.Client" Version="2.0.1" />
<PackageReference Include="CSharpDB.Client" />
paket add CSharpDB.Client --version 2.0.1
#r "nuget: CSharpDB.Client, 2.0.1"
#:package CSharpDB.Client@2.0.1
#addin nuget:?package=CSharpDB.Client&version=2.0.1
#tool nuget:?package=CSharpDB.Client&version=2.0.1
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.Direct,Http, andGrpcare implemented transports today.NamedPipesremains the only future transport target.
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 explicitlypipe://andnpipe://inferNamedPipesGrpcuseshttp://orhttps://endpoints and talks toCSharpDB.DaemonHttpuseshttp://orhttps://endpoints and talks toCSharpDB.ApiNamedPipesstill validates its endpoint shape and then fails with a not-implemented errorHttpClientis supported for bothHttpandGrpc
Example HTTP selection:
var client = CSharpDbClient.Create(new CSharpDbClientOptions
{
Transport = CSharpDbTransport.Http,
Endpoint = "http://localhost:61818"
});
This resolves to the dedicated CSharpDB.Api REST host.
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 HTTP transport runs against
CSharpDB.Apiand now covers the same publicICSharpDbClientsurface as the direct client. - 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.
- The direct transport talks to the engine in-process, the HTTP transport uses JSON endpoints, and the gRPC transport uses the dedicated daemon host.
- 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 (>= 2.0.1)
- CSharpDB.Sql (>= 2.0.1)
- CSharpDB.Storage.Diagnostics (>= 2.0.1)
- Google.Protobuf (>= 3.29.3)
- Grpc.Net.Client (>= 2.71.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on CSharpDB.Client:
| Package | Downloads |
|---|---|
|
CSharpDB.Service
Deprecated compatibility facade over CSharpDB.Client for existing hosts. Planned for removal in v2.0.0. |
|
|
CSharpDB
All-in-one package for CSharpDB application development. Includes the unified client, engine, ADO.NET provider, and diagnostics. |
GitHub repositories
This package is not used by any popular GitHub repositories.