KossJS: 一个可嵌入的 JavaScript 运行时 KossJS: 一个可嵌入的 JavaScript 运行时KossJS 是一个基于 Rust 实现的 ECMAScript 引擎Boa构建的可嵌入式 JavaScript 运行时。它以动态链接库.dll/.so/.dylib的形式分发通过标准 C ABI 暴露接口可以被任何支持 C FFI 的编程语言调用——Python、C/C、C#、Java、Kotlin、TypeScript 等皆可集成。核心特性标准化 C ABI所有功能均通过 C 接口导出语言绑定简单可靠。已提供 Python、TypeScript 等语言的封装示例。跨平台支持提供 Windows、Linux、macOS、Android、HarmonyOS、iOS 平台的预编译动态库iOS 仅限内部测试不可用于 App Store 分发。自带标准库内置 24 个koss:*原生模块io、crypto、system、http、net、path、stream、zlib等所有 API 同步优先、基于Uint8Array、零外部依赖。Node.js 兼容层提供 25 个 Node.js 标准库模块fs、path、http、crypto、stream、zlib等支持require和 ES Module 两种导入方式底层委托koss:*模块实现。Bun / Deno 兼容层提供部分 Bun APIBun.write、Bun.file、Bun.serve等和 Deno APIDeno.readTextFile、Deno.writeTextFile、Deno.serve等方便迁移现有脚本。内置 Fetch API原生支持 HTTP/HTTPS 客户端请求基于 rustls 提供 TLS 支持。ES Module 原生支持完整支持import/export语法并自动将 CommonJS 模块包装为 ESM 格式。支持koss:协议、node:前缀和裸名导入。细粒度沙箱安全能力位Capability控制底层 API 的访问权限默认不授予任何敏感能力KOSS_CAP_SANDBOX。审核回调Audit允许在运行时动态放行或拒绝特定操作。Builtin Flags 控制 Node、Bun、Deno、Koss 原生模块的可见性与 Capability 完全解耦。模块系统KossJS 采用三层模块架构层级说明控制机制L1Rust 绑定底层原生函数绑定Capability能力位L2内部桥接层内部 JS 模块koss:internal/*始终可用用户代码不可直接访问L3用户态兼容层兼容层模块koss:node/*、koss:bun、koss:deno、koss:*Builtin FlagsBuiltin Flags实例创建时设置标志说明KOSS_BUILTIN_NODE启用 25 个 Node.js 兼容模块koss:node/fs、koss:node/path等KOSS_BUILTIN_BUN启用koss:bun命名空间Bun API 兼容层KOSS_BUILTIN_DENO启用koss:deno命名空间Deno API 兼容层KOSS_BUILTIN_KOSS启用 24 个 Koss 原生模块koss:io、koss:crypto、koss:system等最新版本重要变更默认安全策略实例创建时默认能力位为KOSS_CAP_SANDBOX即无任何文件、网络、加密等权限开发者必须显式授予所需能力。Worker 功能已移除由于实现不完善Worker 模块已被完全移除对应的能力位已释放。并行任务建议通过宿主侧多实例管理实现。安全机制能力位Capability—— 静态权限实例创建时确定运行时不可更改。未授予的能力对应的原生函数不会注册到 JS 上下文调用时直接抛出TypeError无性能损耗。已定义 27 个细粒度位涵盖文件系统、网络、加密、FFI、WASM、共享内存等。审核掩码Audit Mask—— 动态策略运行时可更改与能力位使用相同位定义语义为“该操作是否需要触发审核回调”。审核回调由宿主注册在调用受保护 API 时根据参数如文件路径动态决定放行或拒绝。稳定模式stablestableTrue默认生产模式禁用 FFI_senri_ffi功能stableFalse开发模式启用全部功能包括 FFI仅供测试使用示例Pythonfromkossjs_interfaceimportKossJS# 创建实例显式授予文件系统和网络能力kossKossJS(capabilities(KossJS.KOSS_CAP_ALL_FS|KossJS.KOSS_CAP_ALL_NET),builtins(KossJS.KOSS_BUILTIN_NODE|KossJS.KOSS_BUILTIN_KOSS))# 执行 JavaScriptresultkoss.eval(1 2)print(result)# 3# 使用 Node.js 兼容层koss.eval( const fs require(koss:node/fs); fs.writeFileSync(/tmp/test.txt, Hello from Node.js!); )# 使用 Koss 原生模块koss.eval( const io require(koss:io); const content io.readText(/tmp/test.txt); console.log(content); )# 使用 ES Modulekoss.eval( import { hash } from koss:crypto; console.log(hash(sha256, hello)); )koss.destroy()开源协议采用 GNU AGPL v3.0 协议并附带 TT23XR Studio 第 7 节附加权限《独立模块闭源组合例外》。不必被 AGPL 劝退——附加权限允许闭源使用使用官方发布的二进制库.dll/.so/.dylib不做任何修改闭源集成到自己的商业软件中是允许的仅需在用户界面中声明“本软件使用了 KossJS遵循 GNU AGPL v3.0 协议及 TT23XR Studio 的附加权限”。项目状态与社区当前版本0.1.0-dev.x 开发预览版不建议直接用于生产Rust 胶水层主要由 AI 生成需要社区 Review欢迎贡献不会 Rust可以审查src/js_shims/的 JS 兼容层代码、编写 Python 测试用例、补充文档懂 Rust欢迎审查src/runtime.rsFFI 边界 panic 保护、src/sandbox.rs审计逻辑、src/module_loader.rs路径遍历漏洞等模块相关链接源代码https://github.com/KossJS/KossJS/文档https://docss.sxxyrry.qzz.io/KossJS/项目源码完全开源欢迎所有人提 Issues 和 PR。开源的意义在于共同改进。Copyright © 2026 - present TT23XRStudio 保留所有权利

相关新闻

最新新闻

CASS等高线瘦身:DP算法原理、参数设置与工程实践指南

CASS等高线瘦身:DP算法原理、参数设置与工程实践指南

1. 项目概述:为什么等高线需要“瘦身”?在测绘、地质、水利、城市规划等众多工程领域,数字线划图(DLG)中的等高线是表达地形地貌最核心的要素之一。如果你用过南方CASS这类主流的数字化成图软件,肯定对处理…

2026/8/6 8:34:36
DSP技术解析:从原理到实践,掌握空间多靶点定量分析

DSP技术解析:从原理到实践,掌握空间多靶点定量分析

1. 项目概述:从“看见”到“看懂”的空间生物学革命如果你在肿瘤研究、神经科学或者免疫学领域深耕过,就会深刻体会到传统组学技术的一个巨大痛点:我们得到了海量的基因或蛋白表达数据,却不知道这些信号具体来自组织样本的哪个位置…

2026/8/6 8:34:36
Unity性能优化:深入解析与实战解决Gfx.WaitForPresent过高问题

Unity性能优化:深入解析与实战解决Gfx.WaitForPresent过高问题

1. 项目概述:理解Gfx.WaitForPresent这个“性能杀手” 如果你在Unity Profiler的CPU时间线里,看到 Gfx.WaitForPresent 这个条目占用了高达50%甚至70%的帧时间,心里肯定会“咯噔”一下。这通常意味着你的CPU大部分时间都在“干等”&#xf…

2026/8/6 8:34:36
立体几何体积计算:从基础公式到工程实践的核心指南

立体几何体积计算:从基础公式到工程实践的核心指南

1. 从“一砖一瓦”到“万丈高楼”:为什么我们需要体积计算 如果你曾经自己动手装修过房子,或者只是简单地想给鱼缸换水,那你一定遇到过“体积”这个概念。它不像长度那样直观,也不像面积那样容易想象,但它却实实在在地…

2026/8/6 8:34:36
从零实现优先级仲裁器:VHDL与Logisim硬件调度实战

从零实现优先级仲裁器:VHDL与Logisim硬件调度实战

1. 项目概述:为什么嵌入式系统需要一个“交通警察”?在嵌入式系统的世界里,资源永远是稀缺的。想象一下,你设计了一个智能家居控制器,它只有一个串口,但温湿度传感器、烟雾报警器和门锁模块都想通过这个串口…

2026/8/6 8:34:36
Unity UGUI DrawCall分析工具:原理、实现与性能优化实战

Unity UGUI DrawCall分析工具:原理、实现与性能优化实战

1. 项目概述:为什么我们需要一个UGUI DrawCall分析工具?如果你是一名Unity开发者,尤其是负责过中重度手游或应用UI模块的程序,那么“UI卡顿”这四个字大概率是你的噩梦。项目初期UI流畅丝滑,随着功能迭代,界…

2026/8/6 8:29:36