unpuber_core
unpuber_core 是 unpuber 的核心服务库,提供 pub 协议接口、包上传下载、权限与存储抽象。
功能
- 实现
repository-spec-v2相关 API - 处理 package 元数据、版本、上传者等逻辑
- 抽象元数据后端(
hive/sqlite)与包存储后端(file/s3)
包使用方式(作为 Dart 依赖)
unpuber_core 通常不会单独作为可执行程序运行,而是由 unpuber_cli 负责组装并启动 HTTP 服务。
dependencies:
unpuber_core: ^0.0.1
示例(最小化启动):
import 'package:unpuber_core/server.dart';
// 生产中请配合 PackageRepository / PackageStorage / UserStore 的具体实现
本地 CLI 运行(推荐,通过 unpuber_cli)
dart pub get
dart run packages/unpuber_cli/bin/unpuber_cli.dart \
--host 0.0.0.0 \
--port 4000 \
--meta-backend sqlite \
--package-backend file \
--dir ./docker-data/unpuber
Docker 构建与运行(推荐,通过 unpuber_cli 镜像)
docker build -f packages/unpuber_cli/Dockerfile -t unpuber/unpuber_cli:local .
docker run --rm -it \
-p 4000:4000 \
-v "$(pwd)/docker-data/unpuber:/data" \
unpuber/unpuber_cli:local
API 概览
认证与用户:
POST /api/auth/registerPOST /api/auth/loginGET /api/auth/me
Publisher:
GET /api/publisher/mePUT /api/publisher/meGET /api/publisher/me/likesPOST /api/publisher/me/likes/<package>DELETE /api/publisher/me/likes/<package>GET /api/publisher/me/activity
Packages:
GET /api/packagesGET /api/packages/<package>GET /api/packages/<package>/advisoriesGET /api/packages/versions/newPOST /api/packages/versions/newUploadGET /api/packages/versions/newUploadFinishGET /api/packages/<name>/versions/<version>GET /packages/<name>/versions/<version>.tar.gz
Uploaders:
GET /api/packages/<name>/uploadersPOST /api/packages/<name>/uploadersPUT /api/packages/<name>/uploaders/<email>DELETE /api/packages/<name>/uploaders/<email>