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 保留所有权利

相关新闻

Ollama v0.15.4集成OpenClaw:本地AI智能体工具调用实战指南

Ollama v0.15.4集成OpenClaw:本地AI智能体工具调用实战指南

1. 从“玩具”到“生产力”:OpenClaw的正式登场意味着什么如果你最近在折腾本地大模型,尤其是用Ollama来跑各种开源模型,那对“OpenClaw”这个名字应该不陌生。在之前的版本里,它更像是一个社区里流传的“黑科技”插件&#xff0c…

2026/10/9 12:16:42 阅读更多 →
单总线CPU时序设计实战:从微程序控制器到关键路径优化

单总线CPU时序设计实战:从微程序控制器到关键路径优化

1. 项目背景与核心挑战:从“能跑”到“跑得对” 在数字逻辑与计算机组成原理的学习中,单总线CPU的设计是一个经典的实践项目。它剥离了现代CPU中复杂的多级流水线、超标量等高级特性,回归到最本质的冯诺依曼结构,让我们能够清晰地…

2026/9/27 16:44:35 阅读更多 →
本地大模型部署实战:Token效率优化与性能调优指南

本地大模型部署实战:Token效率优化与性能调优指南

1. 项目概述:当本地大模型遇上Token效率瓶颈最近在折腾本地大模型部署的朋友,估计都绕不开一个词:Token。这玩意儿就像是大模型世界的“通用货币”,你喂给它多少Token,它才能吐出多少内容。但问题来了,本地…

2026/10/10 21:17:57 阅读更多 →

最新新闻

手机怎么控制电脑远程办公 手机控制电脑的远程软件

手机怎么控制电脑远程办公 手机控制电脑的远程软件

手机怎么控制电脑远程办公?外出出差、居家休整时突发工作需求,电脑不在身边就容易耽误工作进度,多数远控工具体验差、不适配办公场景。手机怎么控制电脑远程办公更方便?建议使用无界趣连2.0,操作简单、实用性强&#x…

2026/10/11 1:53:42 阅读更多 →
手机怎么连接电脑用电脑操作 手机怎样连接电脑

手机怎么连接电脑用电脑操作 手机怎样连接电脑

手机怎么连接电脑用电脑操作?很多用户想在大屏上处理手机应用,或者远程帮家人操作手机,却不知道具体方法。其实选对远程控制工具即可,无界趣连2.0连接简单、延迟低、画质清晰,能轻松实现手机与电脑互控。综合来看&…

2026/10/11 1:53:42 阅读更多 →
242页PPT,战略落地难?真正缺的不是规划,而是从愿景到行动的闭环

242页PPT,战略落地难?真正缺的不是规划,而是从愿景到行动的闭环

很多企业并不缺战略。缺的是战略落地。每年战略会开得很热闹,愿景很宏大,目标很振奋,口号也很有力量。可到了第二季度,业务还是按老办法跑,部门还是按旧边界协同,绩效还是考原来的指标,一线员工…

2026/10/11 1:53:42 阅读更多 →
WPF嵌入D3D11渲染:共享纹理与D3DImage桥接实践

WPF嵌入D3D11渲染:共享纹理与D3DImage桥接实践

简介:一份面向WPF开发者的D3D视频渲染示例,演示在Windows Presentation Foundation中借助Direct3D硬件加速,高效处理并显示YUV颜色空间的视频帧。项目核心提供完整的C#源代码,涵盖YUV数据到D3D纹理的转换、渲染源封装、Win32互操作…

2026/10/11 1:53:42 阅读更多 →
Windows下ffmpeg下载安装与配置避坑指南

Windows下ffmpeg下载安装与配置避坑指南

简介:Windows 版 FFmpeg 最新静态构建压缩包,内置 FFmpeg 4.3.1 的 64 位可执行程序,专为需要批量转码、音视频剪辑、流媒体推送及格式分析的开发者和内容创作者准备,特别适合不愿自行编译源码、希望直接解压使用的 Windows 用户。…

2026/10/11 1:53:42 阅读更多 →
基于 Raft 协议的强一致分布式锁选型:Etcd vs Redis 在金融级场景下的对比

基于 Raft 协议的强一致分布式锁选型:Etcd vs Redis 在金融级场景下的对比

在分布式锁的选型会议上,架构师们经常会面对两派激烈的技术争吵: 一派是“性能实用主义者”,他们力挺 Redis:“Redisson 封装完备,单机吞吐破 10 万 QPS,看门狗自动续期极其优雅,全网普及度最高…

2026/10/11 1:52:42 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

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

2026/10/10 5:23:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

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

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

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

2026/10/10 10:38:42 阅读更多 →