quickjs_engine
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-NG's new API.
0.1.4
2.6K downloads/mo
#4911 most downloaded on pub.dev
denisnadey/flutter_full_svg_support
What this package is like to depend on
Last release today
23 Aug 2026
Release timing varies
gaps range from 2 weeks to 2 months
Nearly every release is documented
notes for 5 of 5 stable releases
Nothing withdrawn
no release was ever pulled
3 months old
5 releases · first in 2026
5 releases in the last 12 months
see the full history below
Release timeline
5 releases · May 2026 to Aug 2026Releases
latest 5-
0.1.423 Aug 2026Release notes
Open source →Windows plugin registration fix
- Declares
QuickjsEnginePluginCApiin the Flutter Windows manifest so generated registrants call the exported registration symbol. - Adds the canonical
quickjs_engine_plugin_c_api.hpublic header while preserving the previous header as a compatibility include. - Adds a clean Windows release-build workflow alongside the Android arm64/alignment check.
Thanks to @dariyooo for the original report and manifest fix in #36.
Published package: https://pub.dev/packages/quickjs_engine/versions/0.1.4
Release notes
Open source →- Fixed Windows builds by declaring the exported C API plugin class in the
Flutter manifest, so generated registrants call
QuickjsEnginePluginCApiRegisterWithRegistrarinstead of the missingQuickjsEnginePluginRegisterWithRegistrarsymbol. - Added the canonical
quickjs_engine_plugin_c_api.hpublic header expected by Flutter's Windows tooling while preserving the previous header as a compatibility include. - Added a clean Windows release-build workflow to catch plugin registration, header, and native-link regressions.
- Declares
-
0.1.311 Aug 2026Release notes
Open source →- Linked Android native libraries with 16 KB ELF
LOADsegment alignment so apps run natively on 16 KB page-size devices when built with NDK r27. - Added release APK checks for both ELF segment alignment and ZIP alignment.
- Preserved compatibility with the package's CMake 3.10 minimum.
- Linked Android native libraries with 16 KB ELF
-
0.1.222 Jul 2026Release notes
Open source →- Fixed Android release builds by linking the native QuickJS bridge with the
Android
logsystem library used by__android_log_print. - Aligned the Android plugin Java/Kotlin JVM target settings so clean release builds complete on modern Flutter/Gradle toolchains.
- Fixed Android release builds by linking the native QuickJS bridge with the
Android
-
0.1.111 May 2026Release notes
Open source →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.
- Rewrote
-
0.1.011 May 2026Release notes
Open source →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.
- Forked from