unpuber_core 0.0.2 copy "unpuber_core: ^0.0.2" to clipboard
unpuber_core: ^0.0.2 copied to clipboard

A server app using the shelf package and Docker.

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/register
  • POST /api/auth/login
  • GET /api/auth/me

Publisher:

  • GET /api/publisher/me
  • PUT /api/publisher/me
  • GET /api/publisher/me/likes
  • POST /api/publisher/me/likes/<package>
  • DELETE /api/publisher/me/likes/<package>
  • GET /api/publisher/me/activity

Packages:

  • GET /api/packages
  • GET /api/packages/<package>
  • GET /api/packages/<package>/advisories
  • GET /api/packages/versions/new
  • POST /api/packages/versions/newUpload
  • GET /api/packages/versions/newUploadFinish
  • GET /api/packages/<name>/versions/<version>
  • GET /packages/<name>/versions/<version>.tar.gz

Uploaders:

  • GET /api/packages/<name>/uploaders
  • POST /api/packages/<name>/uploaders
  • PUT /api/packages/<name>/uploaders/<email>
  • DELETE /api/packages/<name>/uploaders/<email>
0
likes
110
points
23
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A server app using the shelf package and Docker.

License

BSD-3-Clause (license)

Dependencies

archive, args, collection, crypto, googleapis, hive, http, http_parser, intl, io_universe, json_annotation, logging, meta, mime, minio, path, path_provider, pub_semver, shelf, shelf_cors_headers, shelf_multipart, shelf_router, sqlite3, unpuber_model, yaml

More

Packages that depend on unpuber_core