AstroBox 中文文档 下载 App

插件开发者入门——用 Rust / Python / JS 写 AstroBox 插件

开发前先搞清楚

在写插件之前,先回答几个问题:

  1. 你想做什么? 资源源接入、数据传输、工具辅助——不同用途适合不同实现方式
  2. 选什么语言? Rust(性能好、一级公民)/ Python(快速原型)/ JS(需要 Web UI)
  3. 目标 API Level? 建议直接用 Level 4——功能最全,支持最新 Host API
  4. 有没有现成的参考? 去 GitHub 搜 astrobox plugin 看社区已有作品

关键资源

资源地址说明
官方插件开发文档abox.run/docs/plugin-development最权威的参考
V4 API 文档abox.run/docs/plugin-development/v4Level 4 专属
V2 API 文档abox.run/docs/plugin-development/v2Level 2 插件(较旧)
GitHub 官方仓库github.com/AstralSightStudios/AstroBox主项目源码
示例插件在仓库中搜索 plugin example官方提供的最小示例
QQ 群1102457938中文社区,开发者聚集地

快速开始(Rust)

环境准备

  1. 安装 Rust 工具链(rustup)
  2. 安装 wasmtime CLI(用于本地测试)
  3. cargo install wasmtime-cli

最小项目结构

my-plugin/
├── Cargo.toml
└── src/
    └── main.rs

manifest.json(插件元信息)

{
  "id": "com.example.myplugin",
  "name": "我的插件",
  "version": "0.1.0",
  "api_level": 4,
  "permissions": ["network", "filesystem"],
  "entry": "plugin.wasm"
}

编译和打包

# 编译为 WebAssembly
cargo build --target wasm32-wasi --release

# 打包为 .abp(需要 abox CLI 工具)
abox pack --manifest manifest.json --output my-plugin.abp

本地测试

在 AstroBox 中手动加载刚打出来的 .abp 文件(见 本地插件加载)。

Level 4 Python 入门

Python 写 Level 4 插件需要用到 Pyodide(WASI 版 Python 发行版):

# 准备 Python 环境
pip install pyodide-build

# 编写 plugin.py,声明 Host API 依赖
# 编译为 .wasm
# 打包为 .abp

Python 适合快速原型和数据处理类插件。如果需要写高性能或复杂系统,还是推荐 Rust。

Level 4 JavaScript 入门

JavaScript 插件可以用 wasmtime JS runtime:

# 编写 plugin.js
# 用 wasmtime 编译为 .wasm
# 打包为 .abp

JavaScript 插件特别适合需要 HTTP 服务器 + 应用内浏览器的场景——可以直接写 React / Vue UI。

插件能访问什么

通过 Host API,插件可以:

能力API 组
读写设备数据Device API
安装 / 管理资源Resource API
网络请求HTTP Client API
起本地 HTTP 服务器HTTP Server API(Level 4)
打开应用内浏览器Browser API(Level 4)
读写本地文件Filesystem API
触发 UI 事件UI API
调用其他插件Plugin API

完整 API 文档在 abox.run 上。

权限声明

manifest.json 里声明的权限决定了 AstroBox 首次加载插件时会弹窗申请什么:

权限说明
network网络请求
http-server启动 HTTP 服务器(Level 4)
browser打开应用内浏览器(Level 4)
filesystem文件读写
device穿戴设备访问
uiUI 事件
startup启动时运行

发布插件

上架 AstroBox 插件市场

目前插件市场主要由社区贡献。上架流程大致:

  1. 在 manifest.json 里填好完整元信息
  2. 打生成 .abp 文件
  3. 在 AstroBox 社区 QQ 群或 Discorde 分享,让用户试用和反馈
  4. 按市场上架要求提交

独立分发

如果不想上市场:

  1. 把 .abp 上传到 GitHub Releases
  2. 在社区帖子里分享下载链接
  3. 用户手动安装(见 本地插件加载)

开源协议

AstroBox 主项目是 AGPL v3,但 AstroBox 插件本身可以用自己的协议——包括闭源。

这对商业插件开发者友好:你可以写一个闭源的付费插件,只分发 .abp 二进制,不用开源源码。