KQuickJS 是一个面向嵌入式系统和 JVM 平台的 JavaScript 引擎,基于 MicroQuickJS 项目开发。
⚠️ 本项目是从 MQuickJS Fork 而来,非官方仓库。
主要改进
- CMake 构建系统:将原项目改写为 CMake 管理,支持跨平台编译
- Kotlin 实现:完整的 Kotlin/JVM 移植版本,支持 GraalVM Native Image 编译为原生可执行文件
特性
KQuickJS 可以编译和运行 JavaScript 程序,内存占用低至 10KB(C 版本)。整个引擎约需 100KB 的 ROM 空间(ARM Thumb-2 代码)。Kotlin 版本则提供了 JVM 和原生镜像两种运行方式。
Kotlin 实现功能
- 完整的 JavaScript 解析器和运行时
- 支持 ES5 严格模式
- 支持 GraalVM Native Image 编译
- 跨平台支持(Windows / Linux / macOS)
- 内存管理系统
- 类型安全的值操作
构建
cd kotlin
# 构建 JAR
./gradlew jar
# 运行测试
./gradlew test
# 构建原生镜像(需要 GraalVM)
./gradlew nativeCompile
命令行使用
# 显示帮助
java -jar kquickjs.jar -h
# 执行 JS 文件
java -jar kquickjs.jar script.js
# 执行表达式
java -jar kquickjs.jar -e "1 + 2"
# 进入交互模式
java -jar kquickjs.jar -i
# 设置内存限制
java -jar kquickjs.jar --memory-limit 16M script.js