* feat: add QuickJS as alternative JS engine for flow expression evaluation
Add rquickjs as an optional alternative to deno_core for evaluating
JavaScript expressions in flow transformations. QuickJS offers ~8-16x
faster startup times for simple expressions, making it ideal for
evaluating many small expressions in flows.
Key changes:
- Add new `quickjs` feature flag for windmill-worker
- Implement js_eval_quickjs.rs with true async Rust callbacks for
variable(), resource(), and results.xxx access (no pre-fetching)
- Share expression transformation logic (replace_with_await,
replace_with_await_result) between both implementations
- Add USE_QUICKJS_FOR_FLOW_EVAL env var to switch engines at runtime
- When only quickjs feature is enabled (no deno_core), QuickJS is
automatically used
- Add comprehensive parity tests comparing QuickJS and deno_core output
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* all
* quickjs
* quickjs
* all
* all
* all
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>