Skip to content

Releases: skuirrels/DuckDB.NET

Skuirrels DuckDB.NET 1.5.5

Choose a tag to compare

@skuirrels skuirrels released this 23 Jul 19:56
975bcd1

Skuirrels DuckDB.NET 1.5.5

Stable fork release containing the latest mapped-appender, prepared-parameter, and collection-writer performance work. The packages retain the official DuckDB.NET namespaces and assembly identities while using distinct Skuirrels.DuckDB.NET.* package IDs.

Highlights

  • Compiles mapped-appender projections into a cached row writer.
  • Adds typed prepared-parameter conversion and binding fast paths.
  • Specializes LIST/ARRAY writes for arrays, List<T>, and typed enumerable collections.
  • Preserves non-SZ-array and general collection fallback behavior.
  • Uses weak collection-plan caching without permanently rooting runtime types.
  • Includes the consolidated prepared-command, appender, result-materialization, map-reader, and scoped-writer optimizations from the fork.

Performance

Representative LIST/ARRAY results for one million rows with 32 integers:

Workload Previous baseline 1.5.5
Array to LIST 221.6 ms 125.9 ms
List<int> to LIST 339.3 ms 139.7 ms
Array to fixed ARRAY 208.0 ms 123.4 ms

For ReadOnlyCollection<int> at 100,000 rows, runtime improved from 35.59 ms to 16.10 ms and allocations fell from 78,139.55 KB to 3,138.35 KB.

Packages

dotnet add package Skuirrels.DuckDB.NET.Data.Full --version 1.5.5
  • Skuirrels.DuckDB.NET.Data.Full
  • Skuirrels.DuckDB.NET.Bindings.Full

This release bundles native DuckDB v1.5.4. Do not reference the fork package and the official DuckDB.NET.Data.Full package in the same dependency graph because they contain assemblies with the same identities.

Validation

  • 7,019 tests passed on .NET 8.
  • 7,019 tests passed on .NET 10.
  • Stable 1.5.5 package metadata and native assets validated.
  • Package smoke tests passed on .NET 8 and .NET 10.

Merged through PR #8.

Skuirrels DuckDB.NET 1.5.4

Choose a tag to compare

@skuirrels skuirrels released this 23 Jul 15:56
19135e0

Stable release of the Skuirrels DuckDB.NET performance fork, promoted from 1.5.4-preview.2.

Packages:

  • Skuirrels.DuckDB.NET.Data.Full 1.5.4
  • Skuirrels.DuckDB.NET.Bindings.Full 1.5.4

Install:

dotnet add package Skuirrels.DuckDB.NET.Data.Full --version 1.5.4

These are distinct, unofficial fork package IDs and do not replace the official DuckDB.NET.* packages. Do not reference both package families in the same dependency graph because they expose the same assembly identities.

DuckDB.NET fork preview 1.5.4-preview.2

Pre-release

Choose a tag to compare

@skuirrels skuirrels released this 21 Jul 23:15
c9e2ae5

Unofficial preview release of the consolidated DuckDB.NET performance work, built against DuckDB v1.5.4.

Changes since preview.1:

  • Prepared ExecuteScalar now reads the first result value directly without constructing a full DuckDBDataReader.
  • The measured prepared scalar operation allocates 176 B instead of 944 B through the former reader path, an approximately 81% reduction.
  • Added materialized and streaming coverage for values, nulls, empty results, representative reader types, and command reuse after materialization failure.

Packages:

  • Skuirrels.DuckDB.NET.Data.Full
  • Skuirrels.DuckDB.NET.Bindings.Full

Install:

dotnet add package Skuirrels.DuckDB.NET.Data.Full --version 1.5.4-preview.2

The packages retain the official DuckDB.NET assembly and namespace identities. Do not reference the fork package and the official DuckDB.NET.Data.Full package in the same dependency graph. Preview packages are not selected by IDEs unless prerelease versions are enabled.

DuckDB.NET fork preview 1.5.4-preview.1

Pre-release

Choose a tag to compare

@skuirrels skuirrels released this 21 Jul 22:53
43ae4d5

Unofficial preview release of the consolidated DuckDB.NET performance work, built against DuckDB v1.5.4.\n\nPackages:\n- Skuirrels.DuckDB.NET.Data.Full\n- Skuirrels.DuckDB.NET.Bindings.Full\n\nInstall:\nshell\ndotnet add package Skuirrels.DuckDB.NET.Data.Full --version 1.5.4-preview.1\n\n\nThe packages retain the official DuckDB.NET assembly and namespace identities. Do not reference the fork package and the official DuckDB.NET.Data.Full package in the same dependency graph. Preview packages are not selected by IDEs unless prerelease versions are enabled.