Conversation
Add @dataweave/native Node.js package mirroring the Python API, with N-API native addon using libuv for cross-platform Windows/Linux/macOS support. Includes run(), runStreaming(), and runTransform() APIs with full test suite, Gradle integration, and CI workflow updates.
MSVC rejects mixing /std:c++17 (injected by node-addon-api) with /std:c11 for our pure C addon. Removed node-addon-api since we use the raw node_api.h C header directly. Added CompileAs=1 (/TC) for Windows to ensure C compilation mode. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
MSVC compiles .c files as C and .cc files as C++ by extension, so no explicit CompileAs or /std:c11 flags are needed. The previous attempts conflicted with win_delay_load_hook.cc (a C++ file node-gyp includes automatically on Windows). Also updates node-api-plan.md to reflect libuv-based cross-platform architecture. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
libuv's uv/unix.h references pthread_rwlock_t which requires GNU/POSIX extensions. Strict -std=c11 hides these types and also hides strdup. Using -std=gnu11 on Linux enables the required extensions. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sync iterables (generators, arrays) are now consumed one chunk at a time during the native read callback, avoiding pre-buffering the entire input. This reduces memory from ~658 MB to ~150 MB for 50M elements. Async iterables still require pre-buffering due to the synchronous nature of the native callback. Adds example_streaming.mjs benchmark and documents the sync vs async input behavior in README. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ase workflows Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add @dataweave/native Node.js package mirroring the Python API, with N-API native addon using libuv for cross-platform Windows/Linux/macOS support. Includes run(), runStreaming(), and runTransform() APIs with full test suite, Gradle integration, and CI workflow updates.