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