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

发布时间:2026/9/22 13:50:28

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/9/19 23:45:26

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

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

2026/9/19 15:48:12

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

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

2026/9/21 6:59:28

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

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

2026/9/22 13:45:50

5个Repaint优化技巧,让前端动画丝滑不卡顿

5个Repaint优化技巧,让前端动画丝滑不卡顿 官方文档关于重绘的描述往往冗长且理论化,开发者很难在短时间内抓住性能优化的核心逻辑。很多团队在实际项目中遇到界面卡顿,却不知如何下手排查,导致用户流失。其实,掌握重绘的 最佳实践…

2026/9/22 13:45:50

脱壳教程保姆级教程

5分钟搞懂JS脱壳:从静态到动态的保姆级教程与选型对比 官方文档太长抓不住重点,翻来覆去还是看不懂混淆代码的逻辑?别慌,这份保姆级教程直接上干货,帮你把JS脱壳这件事掰开揉碎了讲清楚。很多开发者一遇到经过 Obfuscator 或…

2026/9/22 13:45:50

3个黎锦光最佳实践帮你搞定嵌入式面试原理

3个黎锦光最佳实践帮你搞定嵌入式面试原理 面试被问原理答不上来?别慌。很多培训机构学员卡在黎锦光相关技术栈的底层逻辑上,导致最佳实践落不了地。 黎锦光…

2026/9/22 13:45:50

搞懂无线路由器位置对性能优化的3个实战坑

搞懂无线路由器位置对性能优化的3个实战坑 刚入职时我也犯过同样的错:Python语法背得滚瓜烂熟,LeetCode算法刷了百题,真让搭个监控家里WiFi信号强度的小项目,脑子直接宕机。很多人卡在“学会语法却不知怎么搭项目”这一步,以为只要代…

2026/9/22 13:40:50

刘振兴源码深度剖析:搞定版本升级API变动,吃透高频面试题

刘振兴源码深度剖析:搞定版本升级API变动,吃透高频面试题 版本升级后 API 全变了?别慌,这不是你一个人的噩梦。很多老程序员升级框架时,看着满屏红色的报错,瞬间怀疑人生,觉得之前写的代码都成了废纸。但这恰恰是 高频面试题…

2026/9/22 10:02:42

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/22 9:07:39

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/22 0:04:49

输电线路在线监测高频面试题拆解 3秒抓住官方文档重点

输电线路在线监测高频面试题拆解 3秒抓住官方文档重点 官方文档几百页翻到头还是懵?面试问到 输电线路在线监测 的数据链路时,脑子一片空白?别慌,这种 高频面试题 我整理了10年,专门治各种“文档太长抓不住重点”的毛病。…

2026/9/22 0:04:49

中介房源管理系统重构避坑:3个关键步骤搞定API变更

中介房源管理系统重构避坑:3个关键步骤搞定API变更 版本升级后 API 全变了,这种痛只有真做过的人懂。 很多团队在接手老旧房产项目时,最崩溃的不是代码烂,而是底层框架升级后,原本熟悉的接口调用方式彻底失效。 这份 保姆级教程…

2026/9/22 0:04:49

3个坑点带你一文搞懂55gg小游戏源码

3个坑点带你一文搞懂55gg小游戏源码 盯着控制台满屏的红色报错,看着那一长串 StackTrace ,是不是脑子瞬间宕机?别急,这种时候最忌讳的就是盲目改代码。很多刚入行的前端同学,面对 55gg 小游戏这类轻量级 H5…

2026/9/20 4:54:47

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/21 18:32:12

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/22 13:25:41

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

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

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

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