Duckit 0.1.1
dotnet add package Duckit --version 0.1.1
NuGet\Install-Package Duckit -Version 0.1.1
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Duckit" Version="0.1.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Duckit" Version="0.1.1" />
<PackageReference Include="Duckit" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Duckit --version 0.1.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Duckit, 0.1.1"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Duckit@0.1.1
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Duckit&version=0.1.1
#tool nuget:?package=Duckit&version=0.1.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Duckit
Strongly-typed access to Parquet files via DuckDB with LINQ query support.
Features
- Build-time code generation from Parquet schemas - no manual POCOs required
- LINQ queries translated to parameterized DuckDB SQL
- Type-safe compile-time validation of queries
- Bring Your Own Types - use existing domain models with attribute mapping
Installation
dotnet add package Duckit
Quick Start
Option 1: Code Generation from Parquet
- Create a
duckit.jsonnext to your.csproj:
{
"namespace": "MyApp.Data",
"datasets": [
{ "name": "Orders", "path": "data/orders.parquet", "rowType": "OrderRow" },
{ "name": "Customers", "path": "data/customers.parquet", "rowType": "CustomerRow" }
]
}
- Build your project - types are generated automatically:
using var duck = DuckSession.OpenInMemory();
var results = await duck.Orders()
.Where(o => o.Total > 50m && o.Country == "GB")
.OrderByDescending(o => o.Total)
.Take(10)
.ToListAsync();
Option 2: Bring Your Own Types
Define your types with [DuckColumn] attributes:
public record OrderRow
{
[DuckColumn("order_id")] public long OrderId { get; init; }
[DuckColumn("total")] public decimal Total { get; init; }
[DuckColumn("country")] public string? Country { get; init; }
}
using var duck = DuckSession.OpenInMemory();
var orders = duck.ReadParquet<OrderRow>("data/orders.parquet");
var results = await orders
.Where(o => o.Total > 100)
.ToListAsync();
Or embed the path in the type:
[DuckTable("data/orders.parquet")]
public record OrderRow
{
[DuckColumn("order_id")] public long OrderId { get; init; }
[DuckColumn("total")] public decimal Total { get; init; }
}
var orders = duck.Table<OrderRow>();
Supported LINQ Operations
Where- filteringSelect- projectionOrderBy/OrderByDescending/ThenBy/ThenByDescending- sortingTake/Skip- paginationFirst/FirstOrDefault/Single/SingleOrDefaultCount/AnyToList/ToArray(with async variants)
Type Mapping
| DuckDB Type | C# Type |
|---|---|
| BOOLEAN | bool / bool? |
| INTEGER | int / int? |
| BIGINT | long / long? |
| DOUBLE | double / double? |
| DECIMAL | decimal / decimal? |
| VARCHAR | string / string? |
| DATE | DateOnly / DateOnly? |
| TIMESTAMP | DateTime / DateTime? |
License
MIT
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. 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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net8.0
- Duckit.Runtime (>= 0.1.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.1 | 88 | 1/21/2026 |
| 0.1.0 | 81 | 1/21/2026 |
| 0.1.0-ci.2 | 40 | 1/21/2026 |