-
Notifications
You must be signed in to change notification settings - Fork 30
feat: bump duckdb and use our own wrappers #351
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
1c3f7ab to
d99a233
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR upgrades DuckDB from v1.4.0 to v1.4.3 and replaces the dependency on @duckdb/duckdb-wasm with custom C++ bindings compiled via vcpkg. The change provides more direct control over DuckDB's WASM compilation, enables statically linked extensions (json, core-functions), and simplifies the API to use synchronous calls instead of async Workers.
Key changes:
- Custom C++ Embind wrappers expose DuckDB's C++ API directly to JavaScript
- vcpkg overlay configuration for building DuckDB with specific extensions
- Simplified synchronous API replacing the previous async Worker-based approach
Reviewed changes
Copilot reviewed 24 out of 26 changed files in this pull request and generated 15 comments.
Show a summary per file
| File | Description |
|---|---|
| vcpkg.json | Adds DuckDB as a vcpkg dependency with json and core-functions extensions |
| vcpkg-overlays/duckdb/* | Custom vcpkg port configuration for building DuckDB v1.4.3 with patches |
| packages/duckdb/src-cpp/* | New C++ Embind bindings providing JavaScript API for DuckDB |
| packages/duckdb/src/duckdb.ts | Refactored to use custom wrappers instead of @duckdb/duckdb-wasm |
| packages/duckdb/src/wasm-library.ts | Base class for WASM memory management utilities |
| packages/duckdb/tests/duckdb.spec.ts | Updated tests for new synchronous API |
| packages/duckdb/tests/duckdb.browser.spec.ts | Removed browser-specific tests (merged into main test suite) |
| packages/duckdb/package.json | Removed @duckdb/duckdb-wasm dependency, updated build scripts |
| packages/duckdb/esbuild.js | Changed from browserTpl to neutralTpl for platform-agnostic bundling |
| tests/bundlers/src/browser-test-utils.js | Updated DuckDB test to use new synchronous API |
| scripts/cpp-install-emsdk.sh | Installs npm dev dependencies in Emscripten for node binary support |
| packages/tsconfig.json | Added ES2020.BigInt library for BigInt support |
| CMakeLists.txt | Added duckdb package to build targets |
| README.md | Updated DuckDB version from v1.4.0 to v1.4.3 |
| .github/copilot-instructions.md | Added CMake and Embind development guidelines |
| .vscode/settings.json | Cleaned up AI assistant configuration |
| .gitignore | Added screenshots/ directory |
| package.json, package-lock.json | Minor dependency version updates (@eslint/js, @types/node) |
Signed-off-by: Gordon Smith <[email protected]>
d99a233 to
515579a
Compare
No description provided.