KossJS: 一个可嵌入的 JavaScript 运行时

发布时间:2026/11/11 21:33:34

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 保留所有权利
延伸阅读

更多相关文章

2026/11/10 7:30:16

最近发现一个好的育儿app,真是ai改变世界呀。

育儿效率革命:全方位解析「依声伴」如何重构高质量的亲子睡前陪伴 一、 现状痛点:现代家庭睡前抚育的高昂时间与精力成本 在快节奏的现代社会生活中,双职工家庭已成为社会主流结构。结束了高压的日间工作后,父母往往在夜间面临着另…

2026/11/7 20:29:42

148、飞控中的系统辨识:频域与时域方法

飞控中的系统辨识:频域与时域方法 从一次炸机说起 去年夏天,我在调试一架四轴飞行器的姿态控制器。PID参数已经调得差不多了,悬停表现尚可,但一做大机动动作——比如急加速前飞然后急停——飞机就开始剧烈震荡,最后直接翻了过去。黑匣子数据回放显示,震荡频率大约在8Hz…

2026/11/9 3:41:18

C语言可变参数函数深度解析:从printf原理到自定义实现

1. 项目概述:从printf说起,理解可变参数的魅力 如果你写过C语言,那你一定用过 printf 。这个看似简单的函数,能接受任意数量的参数,打印出格式化的字符串。你有没有想过,它是怎么做到的?编译器…

2026/11/11 21:27:17

用电工证可以申请入户有效期多久

电工证过期了不知道怎么复审延期?教你用含金量高的证书入户 证书过期了不知道怎么复审延期?你不是一个人。特别是在郑州做项目现场管理员,手里拿着一张 用电工证可以申请入户…

2026/11/11 21:27:17

德山考电工证培训内部消息曝光!别再被中介坑了

德山考电工证培训内部消息曝光!别再被中介坑了 你是不是还在为不知道去哪报名德山考电工证培训而发愁?怕被中介坑、怕交了钱拿不到证?别急,内部消息来了,教你避开这些套路,顺利拿到电工证! 为什么德山考电工证培训这么火? 德山考电工证培训…

2026/11/11 21:27:17

陈校长特种工快速取证值不值得考?许昌房建工程从业者必看

陈校长特种工快速取证值不值得考?许昌房建工程从业者必看 你是不是也像我一样,刚进工地就听说“没有特种作业证就别想上岗”?别急,今天咱们就来聊聊【陈校长特种工快速取证】,看看值不值得考,也顺带说说许昌房建工程从业者怎么操作更省事。…

2026/11/11 21:22:16

西藏找帮忙考电工证怎么避坑?电子证书怎么查?全攻略来了

西藏找帮忙考电工证怎么避坑?电子证书怎么查?全攻略来了 你是不是也遇到过这种情况, 不知道去哪报名怕被中介坑 ,网上一搜“西藏找帮忙考电工证”,结果信息乱七八糟,价格参差不齐,甚至还有人推荐你去“代办”——听起来很省事,但背后可能藏着大隐患…

2026/11/11 12:42:59

电工证丢失还能补吗?千万别踩坑,丢了证等于失业

电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。…

2026/11/11 0:02:26

考低压电工证通过率考试真题与备考技巧

低压电工证通过率高不高?学历不高也能考,值不值得考? 你是不是总听说电工证能帮你找高薪工作,但又担心自己学历不够,考不上?其实,低压电工证考试门槛并没有你想象中那么高,关键是方法对不对。这篇文章就告诉你, 考低压电工证通过率到底有多高 ,…

2026/11/11 0:02:26

低压电工证学时千万别踩坑,濮阳毕业生怎么避坑报名

低压电工证学时千万别踩坑,濮阳毕业生怎么避坑报名 你是不是也和我一样,刚毕业就听说低压电工证学时必须达标才能上岗?可一打听,发现报名机构五花八门,价格参差不齐, 不知道去哪报名怕被中介坑…

2026/11/11 20:27:01

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/10 10:29:37

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑