KossJS 项目介绍

封面

KossJS 项目介绍

一、项目概述

KossJS 是一款高性能、跨平台、嵌入式 JavaScript 运行时引擎,由 TT23XR Studio 开发,采用 GNU AGPL v3.0 协议开源(官方允许直接使用动态链接库的闭源项目无需遵循 AGPL,详见授权说明)。它基于 Rust 与 Boa 引擎构建,旨在为各类应用程序提供轻量、安全、可嵌入的 JS 执行能力,让开发者无需从头实现脚本引擎,即可快速集成现代化的 JavaScript 运行环境,并原生支持 Worker 线程并行、双向消息通信、Fetch API 以及 40+ Node.js 标准库模块。


二、核心特性

1. 标准化 C ABI

通过标准 C 应用程序二进制接口暴露功能,支持 Python、C/C++、C#/.NET、Java/Kotlin 等多种语言直接调用。官方提供开箱即用的接口封装(如 kossjs_interface.py),无需处理复杂的 FFI 细节。

2. 轻量嵌入式设计

  • 低内存占用:运行时约 10–15 MB,适合资源受限场景。
  • 零 GC 停顿:Rust 实现无 GC 设计,无垃圾回收暂停,满足实时应用需求。
  • 完全隔离的实例:每个 KossInstance 独立运行,可快速创建/销毁。

3. Worker 线程与双向通信(全新)

KossJS 内置 Worker 线程池,支持多线程并行执行 JS 代码,并提供跨线程消息传递,实现简单的双向通信:

  • createworkerpool(size):创建指定数量的工作线程。
  • workerexecute(workerid, code):在指定 worker 上执行 JS 代码。
  • workerpostmessage(worker_id, data):向 worker 发送 JSON 消息。
  • workertryrecv():非阻塞接收来自任意 worker 的消息。
  • workerterminate(workerid) / worker_shutdown():终止单个或全部 worker。

4. 内置 Fetch API

原生支持 HTTP/HTTPS 请求,无需额外依赖:

  • TLS 指纹伪装:模拟 Chrome 的 TLS/JA3/HTTP2 指纹,绕过反爬机制。
  • 完整的请求/响应:支持自定义 Headers、请求体、异步 fetchresponse.json() 等标准 API。

5. Node.js 兼容性

内置 40+ 个 Node.js 标准库模块,包括 fshttphttpscryptopathosstreamzlib 等,可直接在 JS 代码中 require() 使用,无需额外打包或模拟。

6. ES Modules 支持

原生支持 import / export 语法,支持异步模块加载和标准模块解析。

7. 跨平台覆盖

编译为平台原生动态库,支持 Windows、Linux、macOS、Android、HarmonyOS、iOS,并提供 x64、ARM64、ARMv7 架构。


三、技术架构

您的应用程序 (Python/C++/C#/Java)
              ↓
    kossjs_interface.py(接口封装)
              ↓
        C ABI 接口(标准调用约定)
              ↓
   KossJS 核心引擎(Rust 动态库)
              ↓
   Boa JS 引擎 + 异步运行时 + Worker 线程池 + 网络层

四、适用场景

  • 桌面应用:脚本插件系统、自动化任务、用户宏。
  • 游戏开发:游戏内脚本引擎(Godot、Unity 均可集成),热更新逻辑。
  • 后端服务:用户代码沙箱、动态规则引擎、配置热加载。
  • 移动应用:Android/HarmonyOS App 中动态执行 JS,实现插件化功能。

五、性能对比

特性 KossJS QuickJS Duktape
核心语言 Rust C C
内存占用 ~10-15 MB ~200 KB ~200 KB
GC 停顿 有(引用计数)
并发支持 多 Worker 线程 单线程 单线程
ES Modules
内置 Fetch
Node.js 模块 40+

注:KossJS 内存占用较高,但提供了更完整的现代 JS 特性集、网络能力和并行执行支持。


六、快速上手(Python 示例)

from kossjs_interface import KossJS

with KossJS() as koss:
    # 基础执行
    print(koss.eval("1 + 2"))  # 3

    # 设置全局变量
    koss.set_global("name", "KossJS")
    print(koss.eval("name"))   # KossJS

    # 使用 Fetch API
    koss.run_async('''
        fetch("https://api.github.com/users/github")
          .then(r => r.json())
          .then(d => console.log(d.login))
    ''', timeout_ms=5000)

    # Worker 并行与通信
    koss.createworkerpool(2)
    koss.worker_execute(0, "self.postMessage('Hello from worker')")
    msg = koss.workertryrecv()
    print(msg)  # Hello from worker

七、开源协议与未来计划

  • 开源协议:GNU AGPL v3.0,但官方赦免动态库的直接使用者(闭源项目可随意调用,无需开源)。
  • 版本管理:严格遵循语义化版本 2.0.0,支持 dev / internal / alpha / beta / rc 预发布阶段。
  • 未来方向:持续增加 Node.js 模块兼容性、优化内存占用、完善调试工具和 Worker 消息模式。

总结

KossJS 是一个为嵌入而生的现代 JavaScript 运行时。它结合了 Rust 的高性能与内存安全、Node.js 的模块生态、Fetch API 的便捷网络能力、Worker 线程的并行通信,以及全平台的动态库封装。无论您是在桌面应用、游戏、后端还是移动端需要执行 JS 代码,KossJS 都能提供专业级、易集成、可商用(含赦免条款)的解决方案。

项目官网、文档、GitHub 地址请参考文档页脚链接。

评论 (1)

登录 后发表评论
D
depx-xi梓
2026-05-16 07:29
23XR出品