@ekrooh/bare

中文文档
0.7.0发布于 2026/11/08Apache-2.0ES Module构建来源已验证近 30 天下载 2549

一个灵魂,许多平台——用于"赤裸"运行时段上跨平台应用的无聊靴子:有线协议,插件内核,RPC信使,运输,和本土主机桥.

中文使用文档
文档目录12 节
  1. 型号
  2. 仓库布局
  3. 支持矩阵
  4. 信件协议
  5. 插件
  6. 循环服务器和认证
  7. 测试
  8. 图标
  9. Android 构建
  10. 完成出版的AAR
  11. iOS 构建
  12. 页:1

@ekroh/空虚

一个灵魂,许多平台. 整个Android,iOS,一个代码库和身份, 网络和桌面.

文档 : https://anderscan.github.io/ekrooh 页面存档备份,存于互联网档案馆

CI Release

短跑时间(孔道)上跨平台应用的无聊靴子: a 二进制线条协议、插件内核、 RPC 信使、 传输和本地主机 桥梁,加上一个参考应用.

  • vision.md: 这个项目是和不是.
  • AGENTS.md:如何开发而出"克能"命令.
  • CONTRIBUTING.md:如何贡献.
  • RELEASING.md:如何切开放出.
  • docs/: 内部发展成果评估docs/adr/)和代理业务;而不是公共网站.

型号

前端( 浏览器 或 WebView) 被写成只能到达后端 通过一个WebSocket 携带二进制框信息.

  • 在设备上, 工作盘运行一个为网络服务的回转的 HTTP+WS 服务器 应用程序、媒体文件和协议套接字。 页面连接到 ws://location.host。 。 。 .
  • VITE_TRANSPORT_MODE=mock 选择模拟传输(测试).
  • 浏览器 Dev 在 Dev 后端通过 VITE_BARE_WS_URL。 。 。 .

UI从来没有在工作间,赤裸,或主办IPC上分会. @ekrooh/bare/core 描述线条协议,而不是执行协议的运行时间.

任期含义
前端Web UI:浏览器中的Vite捆绑,或者WebView中相同的捆绑.
后端运行核心捆绑,用前端表达框架协议.
东道主原生外壳 (Android/iOS):启动后端,拥有系统API,注入会话靴.

仓库布局

  • core/: 有线编码器,插件路由器, RPC 信使, 主机 IPC ()core/messages, (中文(简体) ), 循环服务器( n)core/server),工人条目(core/main.core.ts) (中文(简体) ).
  • plugins/: canonic 插件 (core.health, (中文(简体) ), core.discovery, (中文(简体) ), core.permissions, (中文(简体) ), vendor.media)和键入事件构建器.
  • web/transports/数字 : MessageTransport和模拟运输.
  • android/: 主机库 :bare-host (IPC协调员,插件注册,WebView客户端).
  • ios/: 主机 Swift 软件包 BareHost (单位:千美元) Package.swift) (中文(简体) ).
  • examples/数字 : web/, (中文(简体) ), android-app/, (中文(简体) ), ios-app/, (中文(简体) ), consumer-basic/。 。 。 .
  • e2e/: 模拟运输上的 Playwright specs. scripts/: Dev跑者,Playwright包装机,预建取取器.
  • apps/docs/:公共docs站点(Astro Starlight, GitHub Pages).
  • templates/, (中文(简体) ), research/:共享部署模板;设计说明.
  • prebuilds/: Bure Kit 预建(被忽略的建设输出).

公众表面是 exports 地图在 package.json (单位:千美元)@ekrooh/bare/core, (中文(简体) ), /runtime, (中文(简体) ), /plugins, (中文(简体) ), /plugins/*/events, (中文(简体) ), /transports) (中文(简体) ). 它指着 汇编的无害环境管理和类型申报 dist/ (建造与 vp pack) (中文(简体) ). 消费者 从未看到 TypeScript 源代码 .

支持矩阵

运行时间状态运输页:1
浏览器 (dev)头等舱网络安全套Vite + 本地后端( R)VITE_BARE_WS_URL(中文(简体) )
浏览器( 测试)头等舱雾决定游戏机运行
机器人头等舱网络安全套同源回路套接字, cookie 认证
iOS系统一等(参考对等)网络安全套同源回转套接字,饼干认证;宿主船舶作为源(ios/, SPM) 在发行标签上
桌面参考文献(macOS)网络安全套Zig 主机+系统网络视图+侧车 bare; 见 examples/desktop-app

均等政策:核心协议和插件合同是运行时不可知的. 能力是选入的插件,可能具有运行时间的特殊性. 插件报告 不支持有决定性错误的行为 。 特性代码调用插件 事件,从不原始平台 API.

信件协议

二进制框 : version (1字节), type (1字节), headerLen (2字节,BE), payloadLen (3字节,BE), header (UTF -8 JSON), (美国英语), payload (可选). 执行人: MessageProtocol 内 core/messages (单位:千美元)wire-codec.ts) (中文(简体) ).

页眉类型 : DISPATCH, (中文(简体) ), INVOKE_REQUEST, (中文(简体) ), INVOKE_RESPONSE (回复) requestId) (中文(简体) ). dispatch 是火和遗忘; invoke 请求/答复和 超时.

插件

核心船只没有产品特征。 插件ID是命名空格 (app.photos· ; core.* 财务报告和审定财务报表 vendor.* 为框架预留) 本地插件( e)health.ping) (中文(简体) ). 运行时间适配器 : web, (中文(简体) ), android, (中文(简体) ), ios, (中文(简体) ), bare。 。 。 . Canonical插件在Repository布局下列出.

媒体从不跨出电线(机身16米B). vendor.media 是参考文献 对于带外字节: 主机从原地选择或抓取文件, 工作列 在回路服务器上挂载并返回一个 URL,网络层则装入 带饼干认证的 URL .

循环服务器和认证

一个服务器( O)core/server/static-file-server.ts)服务于网络应用 /, 插件 媒体挂载,和 WebSocket 升级。 在设备上它绑起 127.0.0.1 一个 麻黄口. 每个请求都用每会的代号敲门:

  1. 弹壳注射 window.__ekrooh = { bootstrap },一个单用非(绝不是生代号).
  2. 页面呼叫 POST /login 与非ce并收 bare_session_<port> 饼干HttpOnly; SameSite=Strict; Path=/) (中文(简体) ). 港口 在名称中,将两个回回服务器 在一个饼干店分开。 生下来的 符号绝不是登录证书 .
  3. 饼干授权 <img>, (中文(简体) ), <video>, (中文(简体) ), fetch,WS升级. 非浏览客户端发送 X-Bare-Token没有 ?token= 倒计时 (见 docs/adr/0003-loopback-auth-surface.md) (中文(简体) ).

只有靴子绑住 / 是公共预奥。 工人写道: { origin, port, bootstrap } 改为 handoff.json 在主机的 sandbox dir (永远不要) ); 主机负载 http://127.0.0.1:<port>/index.html 财务报告和审定财务报表 删除文件.

每个请求还必须针对绑定回路服务器(Host),和一页 Origin 必须是该服务器或明确允许的服务器,在每个模式中.

Dev 后端( L)mode=dev运行相同的捆绑,并关闭认证 ws://localhost:8080,允许 Vite dev 来源(origin= 示众.

测试

  • 单位: vitest (vp test用于编码器、路由器、RPC信使、运输; J Unit for the Kotlin host; XC Test for the Swift host. (原始内容存档于2018-09-21).
  • 类型检查 : tsc --noEmit,该部分 vp check。 。 。 .
  • 整合:模拟运输的Playwright e2e(npm run test:e2e:web) (中文(简体) ). 浏览器通过 scripts/playwright-local-browsers.mjs 输入 .playwright-browsers/。 。 。 .
  • 原生 : npm run test:ios 运行 Swift XCTest 套件和模拟器上的UI测试.

图标

名称列表 : AGENTS.md共同之处:

命令目的
vp check格式、 提示、 类型检查
vp test单位测试
npm run test单位+ 剧作家 e2e
npm run devVite dev 服务器 + 赤裸后端( 重开监视)
npm run dev:mock使用模拟运输
npm run build:core套装 core/main.core.ts (建设)
npm run build:web构建 examples/web 进入Android应用程序的资产
npm run build:iosiOS 输入( addons、 捆绑、 网络资产、 xcodegen)
npm run prebuilds获取赤色 Kit 预建( 已检查, 无符号)
npm run playwright:install将铬下载到 .playwright-browsers/
npm run smoke:loopback烟雾测试回转服务器 bare

Android 构建

需要Android SDK (英语)local.properties 与 sdk.dir=...和赤裸克特预建.

vp install
npm run prebuilds
npm run build       # core bundle + web assets
./gradlew :examples:android-app:assembleDebug

./gradlew build 还运行主机库的JUnit测试.

完成出版的AAR

io.github.anderscan.ekrooh:bare-host 在马文中心(无证书). 把它固定在同一个版本 @ekrooh/bare数字 :

dependencies {
  implementation "io.github.anderscan.ekrooh:bare-host:<version>"
}

GitHub 软件包是一个需要 read:packages 符号 。 偏爱马文中心.

iOS 构建

需要 Xcode 、 简陋的 Kit 预建 xcodegen。 。 。 .

vp install
npm run prebuilds   # also fetches prebuilds/ios/BareKit.xcframework
npm run build:ios
npm run test:ios

页:1

  • 处理 examples/android-app/src/main/assets/ 作为构建输出。 维特清除 散开 assets/main-*.{js,css} 在重建之前.

版本与发布记录

@ekrooh/bare 共发布 9 个版本,首次发布于 2026/08/14;过去 12 个月发布了 9 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.7.0latest2026/11/085 天前
0.6.22026/11/076 天前
0.6.12026/11/0212 天前
0.6.02026/10/2816 天前
0.5.02026/10/2718 天前
0.4.02026/08/172 个月前

关于 @ekrooh/bare 的常见问题

@ekrooh/bare 是什么?

一个灵魂,许多平台——用于"赤裸"运行时段上跨平台应用的无聊靴子:有线协议,插件内核,RPC信使,运输,和本土主机桥.

如何安装 @ekrooh/bare?

在项目目录运行 npm install @ekrooh/bare,或使用 pnpm add / yarn add / bun add。

@ekrooh/bare 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/ekrooh__bare 是否存在。

@ekrooh/bare 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@ekrooh/bare 可以商用吗?

@ekrooh/bare 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@ekrooh/bare 的下载量有多少?

根据 npm 官方下载统计,@ekrooh/bare 在 2026/10/13 – 2026/11/11 这 30 天内被下载 2,549 次,日均约 85 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@ekrooh/bare 还在维护吗?

最新版本 0.7.0 发布于 2026/11/08(5 天前);至今共发布 9 个版本,其中过去 12 个月发布了 9 个;首次发布于 2026/08/14。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。