dart_pub_sdk 0.1.1

Dart pub rust api package
Documentation

Dart Pub SDK

一个用于与 Dart Pub 服务交互的 Rust SDK。

功能特性

  • 搜索和获取 Dart 包信息
  • 支持多种镜像源(清华大学、上海交通大学、中国区等)
  • 异步 API 设计
  • 完整的包信息模型

安装

在你的 Cargo.toml 文件中添加依赖:

[dependencies]
dart_pub_sdk = { path = "path/to/dart_pub_sdk" }

注意:目前这个库还未发布到 crates.io,需要通过本地路径引用。

快速开始

基本用法

use dart_pub_sdk::{DartPubClient, DartPubService};

#[tokio::main]
async fn main() {
    // 创建默认客户端(使用官方源)
    let client = DartPubClient::default();
    
    // 搜索包
    match client.search("flutter_lints".to_string()).await {
        Ok(package) => {
            println!("包名: {}", package.name);
            println!("最新版本: {}", package.latest.version);
        }
        Err(e) => {
            eprintln!("搜索失败: {}", e);
        }
    }
}

使用镜像源

use dart_pub_sdk::{DartPubClient, DartPubMirror};

#[tokio::main]
async fn main() {
    // 使用中国区镜像
    let client = DartPubClient::with_mirror(DartPubMirror::flutter_io_cn());
    
    // 或者使用清华大学镜像
    // let client = DartPubClient::with_mirror(DartPubMirror::tsing_hua());
    
    // 或者使用上海交通大学镜像
    // let client = DartPubClient::with_mirror(DartPubMirror::shang_hai_jiao_tong());
    
    match client.search("http".to_string()).await {
        Ok(package) => {
            println!("包名: {}", package.name);
            println!("版本数量: {}", package.versions.len());
        }
        Err(e) => {
            eprintln!("搜索失败: {}", e);
        }
    }
}

API 文档

DartPubClient

主要的客户端结构,用于与 Dart Pub 服务交互。

创建客户端

  • DartPubClient::default() - 使用官方源创建客户端
  • DartPubClient::with_mirror(mirror: DartPubMirror) - 使用指定镜像源创建客户端
  • DartPubClient::new(host: String) - 使用自定义主机地址创建客户端

方法

  • search(&self, query: String) -> Result<DartPackage, Box<dyn std::error::Error>> - 搜索指定名称的包

DartPubMirror

预定义的镜像源。

  • DartPubMirror::tsing_hua() - 清华大学镜像
  • DartPubMirror::flutter_io_cn() - 中国区镜像
  • DartPubMirror::shang_hai_jiao_tong() - 上海交通大学镜像

数据模型

DartPackage

表示一个 Dart 包的完整信息。

  • name: String - 包名称
  • latest: VersionInfo - 最新版本信息
  • versions: Vec<Version> - 所有版本信息

VersionInfo / Version

版本信息结构。

  • version: String - 版本号
  • pubspec: Pubspec - 包的元数据
  • archive_url: String - 包归档文件的 URL
  • archive_sha256: String - 归档文件的 SHA256 校验和
  • published: String - 发布时间

Pubspec

包的元数据信息。

  • name: String - 包名称
  • description: String - 包描述
  • repository: Option<String> - 仓库地址
  • issue_tracker: Option<String> - 问题跟踪地址
  • homepage: Option<String> - 主页地址
  • version: String - 版本号
  • environment: Environment - 环境要求
  • dependencies: Option<HashMap<String, Dependency>> - 依赖信息
  • topics: Option<Vec<String>> - 主题标签

许可证

本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。