Skip to content
This repository was archived by the owner on Sep 1, 2026. It is now read-only.

Add DuckDB Cross Platform Support - #1167

Closed
Dr Bill Mcilhargey (billmcilhargey) wants to merge 1 commit into
microsoft:devfrom
billmcilhargey:dev-duckdb-cross
Closed

Add DuckDB Cross Platform Support#1167
Dr Bill Mcilhargey (billmcilhargey) wants to merge 1 commit into
microsoft:devfrom
billmcilhargey:dev-duckdb-cross

Conversation

@billmcilhargey

@billmcilhargey Dr Bill Mcilhargey (billmcilhargey) commented Apr 18, 2026

Copy link
Copy Markdown

Add architecture-specific DuckDB library handling and improve error messages

Add DuckDB support for Linux x64 and Linux arm64 platforms

(moved to dev branch - rather than main branch from earlier PR)

Add architecture-specific DuckDB library handling and improve error messages

Add DuckDB support for Linux x64 and Linux arm64 platforms
@kodevza

Konrad Zawadka (kodevza) commented May 25, 2026

Copy link
Copy Markdown

aahmed-spec Aleksandar Nikolić (@alexandair) Tested on Ubuntu with ZeroTrustAssessment 2.3.0.

The package includes duckdb.dll and libduckdb.dylib, but no libduckdb.so. The error shown is about Visual C++ Redistributable.

Bill’s change looks like the right fix and enables me to generate the report on Ubuntu 24.04.

Could you review and merge this into dev? I can provide logs from my side if needed.

@kodevza

Copy link
Copy Markdown

aahmed-spec Merill Fernando (@merill) , one concern with the current DuckDB setup: native libraries are vendored directly into src/powershell/lib, which makes the repo heavier and prevents Dependabot from tracking/updating them properly.

Could we move DuckDB to an external dependency model instead, e.g. NuGet + build/package-time asset copy?

If you’re open to this direction, I can take it forward.

@billmcilhargey

Copy link
Copy Markdown
Author

Closing this original implementation because it has been superseded by a more complete RID-based approach in the active development work:

  • DuckDB.NET.Data.Full and DuckDB.NET.Bindings.Full are pinned to 1.2.1 with a lock file.
  • Managed and native assets are materialized at test/build time rather than committed or copied during module import.
  • Native selection supports Windows x64/ARM64, Linux x64/ARM64, and macOS x64/ARM64.
  • Windows ARM64 was validated natively with DuckDB v1.2.1.
  • The complete PowerShell suite passes: 14,121/14,121.
  • CI covers all six OS/architecture combinations.

Thank you for the testing and feedback on this PR; it directly informed the replacement design.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants