跳转到内容
你正在查看尚未发布的 main 分支的文档,其中可能包含尚未进入任何发布版本的变更。

路线图

本页按计划顺序列出各项功能,并说明它们能为你以及安装你软件的用户带来什么。这里不写日期:Niobium 由一个人在业余时间维护(关于本项目),所以顺序是承诺,时间不是。

路线图说明的是计划,而不是已经可用的功能。某项功能是否经过验证、在哪个平台上验证,只记录在状态与平台上。各个平台自己的计划见平台支持。

标记 含义
✅ Niobium 0.1 中已提供;验证状态见状态与平台
🚧 正在为下一次发布开发,编号表示优先级
🔜 接下来,在当前工作之后
🗓️ 之后
⛔ 有意不在计划内
状态 功能 对你意味着什么
✅ 在线和离线安装 用户可以从你通过 HTTP 托管的仓库安装,也可以从磁盘或共享目录上的离线包安装(发布与托管)
✅ 发布通道 stable、beta 和 nightly 让你先在一部分用户中测试某次发布,再推给所有人,而无需重新构建(通道与晋升)
✅ 安装、更新、修复和卸载 每次变更都是一个事务,所以崩溃或断电绝不会留下一个只装了一半的应用(事务)
✅ 安全回滚 要撤回一次有问题的发布,你发布一个包含上一个良好版本的新发布;已有安装会像接收其他更新一样迁移到它
✅ 便携运行 组件从经过验证的缓存中运行,而无需安装(制品与便携运行)
✅ 在应用内部更新 你的应用通过 libdistribution 自行检查、下载并应用更新(通过 C ABI 嵌入)
🚧 1 内置功能模块 每项系统集成和分发功能都成为 Niobium 内部一个自成一体的模块,在每个平台上都以同样的方式测试。新的系统集成会来得更快,另一个目标是让你的 setup 只包含你的产品用到的模块
🚧 2 预设和主题 从适合你产品类型的预设开始(桌面应用、命令行工具、Electron 应用、后台服务),为安装程序窗口选择主题,并设置名称、徽标和颜色。无需手写每个字段,就能得到一个可以签名并发布的安装程序,并在发布前预览
🚧 3 在 macOS、Windows 和 Linux 上可用于生产环境 在真实机器上测试,验证为整台机器所有用户安装的场景,setup 使用 Authenticode 和 Apple Developer ID 签名(平台代码签名),用户不会看到“未知发布者”或 Gatekeeper 警告
🚧 4 更容易上手 预构建的 setup、nbpack 和 libdistribution,以及构建 API 的兼容性承诺。无需安装 Zig 就能试用 Niobium,升级时也不必重写你的构建
🚧 5 更多系统集成 从 myapp:// 链接打开你的应用,把命令行工具加入 PATH,设置环境变量;卸载时全部干净移除,而且无需安装脚本
🚧 6 适用于任何应用的应用内更新 你的应用使用与 setup 相同的签名和事务自行更新。首先提供 Electron 和 Node.js 包;其他语言调用 C ABI,并提供示例
🔜 新功能说明 发布说明显示在安装程序和你应用的更新提示中,并与发布一起签名,因此无法被替换
🔜 登录时启动 你的应用注册为在用户登录时启动,无需脚本或手动步骤
🔜 通过 nbpack 轮换密钥 替换丢失或过期的签名密钥,而不会破坏已有安装;客户端已经接受轮换后的密钥(签名与密钥管理)
🔜 安全策略 一份公开的策略,以及一个私密的漏洞报告渠道(安全)
🗓️ 屏幕阅读器支持 使用屏幕阅读器的人也能在全部三个平台上安装你的软件
🗓️ Linux 上的原生文件夹选择器 选择安装位置时的外观和操作与桌面的其他部分一致
🗓️ 以用户的语言显示安装程序窗口 用户用自己读得懂的语言完成安装
🗓️ 更多平台 ARM 版 Windows、麒麟(Kylin)和统信(UOS),见平台支持上的候选平台
⛔ 安装脚本和自定义动作 清单是数据。数据库迁移这类产品特有的工作通过 App Bootstrap 在你的应用中运行
⛔ 第三方插件和运行时扩展 功能模块内置在 Niobium 中,并随 Niobium 一起审查;setup 不加载任何其他东西
⛔ 以管理员权限运行任意命令 提权助手只接受一组固定的、带类型的操作(权限边界)
⛔ 单文件自解压安装程序 自解压可执行文件经常被杀毒软件标记。在线安装使用小巧的 setup,离线安装使用离线包目录
⛔ 原生 Wayland 后端 在 Wayland 上,安装程序窗口通过 XWayland 运行(平台支持)

功能模块是 Niobium 本身的一部分:你仍然以数据描述你的产品,安装时不会加载 Niobium 之外的任何东西。标记为 ⛔ 的内容是有意不做的,这样安装才能保持可预期、可审计。