适用于桌面和移动设备的小型模块化 JavaScript 运行时
JavaScript 是一个小型的模块化运行时,适用于桌面和移动设备。与 Node.js 一样,它提供了一个异步、基于事件的架构,用于以现代软件的通用语言编写应用程序。与 Node.js 不同,它将嵌入和跨设备支持作为核心用例,旨在使其在手机上运行与在笔记本电脑上运行一样好。结果是一个适合网络化、点对点应用程序的运行时,可以在各种硬件上运行。
Bare 是基于 的,后者以独立的方式为 V8 提供了低级绑定,而 则提供了异步 I/O 事件循环。Bare 本身仅在其上添加了少数缺失的组件,以支持更广泛的模块生态系统:
其余部分则交由用户空间模块来使用这些基础类实现,从而使运行时本身简洁而“光盘”。通过对底层 JavaScript 引擎使用 libjs 和平台 I/O 操作使用 libuv 进行抽象,Bare 允许模块作者实现原生插件,这些插件可以在实现 libjs ABI 的任何 JavaScript 引擎上运行,以及 libuv 支持的任何系统上运行。
Bare 旨在嵌入到嵌入者可能不完全信任的代码中,而 Bare.Addon.seal() 是用于冻结进程可能加载的原生代码集的机制。 Bare 所做的和不做的事情都记录在 docs/threat-model.md 中,嵌入者在运行不受信任的 JavaScript 之前应阅读此文档。
暂无开放 Issues,或尚未同步最近议题。