quickjs_engine 0.1.1
quickjs_engine: ^0.1.1 copied to clipboard
Modern QuickJS-NG 0.14.0 (2026) bundled for Flutter — same JS engine on every platform (Android, iOS, macOS, Linux, Windows). API-compatible fork of flutter_js with the bridge patched against QuickJS- [...]
Changelog #
0.1.1 #
Documentation + tooling additions, no engine changes.
- Rewrote
README.mdwith explicit per-platform tables (Android / iOS / macOS / Linux / Windows) covering how the library is produced and what action is required from package consumers (usually: none). - Added a When you might need to rebuild section so it's clear that typical app development needs no native toolchain.
- Added a Troubleshooting section: macOS "tests can't find dylib", deployment-target warnings, Android NDK requirements, Windows
cl.exeenvironment, missing-dylib after fresh checkout. - New
tool/build_native.ps1— PowerShell version of the build script for Windows hosts. Handles MSVC'sRelease\config subdirectory. tool/build_native.shis now platform-aware (detects macOS vs Linux viauname -s) and stages the output appropriately on macOS, while leaving the Linux build undernative/build/since the consumer's plugin CMake rebuilds anyway.
0.1.0 #
Initial release.
- Forked from
flutter_js0.8.7 (MIT, by Ábner Oliveira). Dart-side API surface is API-compatible:getJavascriptRuntime(),evaluate(),onMessage(),enableFetch(),enableHandlePromises(),QuickJsRuntime2,JavascriptRuntimeall work as upstream. - Replaced bundled JS engine with QuickJS-NG 0.14.0 (May 2026). Same engine on every platform — Android, iOS, macOS, Linux, Windows. No more JavaScriptCore fallback on Apple targets.
- Patched the FFI bridge (
native/cxx/libfastdev_quickjs_runtime.cpp) against QuickJS-NG's updated API:JS_NewClassID(rt, &id)takes an explicit runtimeJS_IsPromise,JS_IsArray,JS_IsErrorare single-argumentJS_BOOL→bool
- Native build wiring:
- Android: NDK CMake driven from
android/build.gradle→native/CMakeLists.txt(armeabi-v7a, arm64-v8a, x86, x86_64). - iOS: podspec compiles bridge + QuickJS sources into the plugin
framework via
source_files. - macOS: podspec vendors a prebuilt
libquickjs_c_bridge_plugin.dylib; rebuild viatools/build_native.sh. - Linux/Windows: plugin CMakeLists pulls in
native/CMakeLists.txtviaadd_subdirectory.
- Android: NDK CMake driven from
- Runtime selector (
getJavascriptRuntime()) always returns the QuickJS path on every platform; theJavascriptCoreRuntimebindings are kept inlib/javascriptcore/for ABI compatibility but unused.