5个版本 (重大更新)

0.6.0+20240710.0 2024年7月15日
0.5.0+20240502.0 2024年5月8日
0.4.0+20240327.0 2024年4月2日
0.3.0+0.0.6 2024年2月14日
0.1.0 2023年8月28日

#455数据库接口

每月33 次下载
oxide-httpmock 中使用

MPL-2.0 许可证

2.5MB
47K SLoC

氧化物Rust SDK

为氧化物API生成绑定。

安装

oxide 包可在crates.io上找到。您可能还想使用tokio。将它们添加到您的Cargo.toml文件中或使用cargo add

$ cargo add oxide
$ cargo add tokio

认证

要连接到氧化物API,SDK需要一个主机URL和一个令牌。有两种指定这些信息的方法

  • 环境变量:您可以设置OXIDE_HOST和OXIDE_TOKEN环境变量。
  • 配置文件:当您在CLI中运行oxide auth login时,会生成一个$HOME/.config/oxide/hosts.toml文件。此文件包含敏感信息,如您的令牌和用户ID。

SDK将首先查找环境变量,如果它们未定义,则查找配置文件。

示例

创建一个新的oxide::Client,如下所示

use futures::StreamExt;
use oxide::{config::Config, context::Context, prelude::*};

#[tokio::main]
async fn main() {
    // Get a client from the on-disk configuration.
    let context = Context::new(Config::default()).expect("unabled to create context");
    let client: &Client = context.client().expect("unable to get client");

    // Start using the client!

    // For example we can look at the projects in our silo:
    let mut projects = client.project_list().stream();
    loop {
        match projects.next().await {
            // No more items.
            None => break,
            // Print the name of a project.
            Some(Ok(project)) => println!("project {}", *project.name),
            // Something went wrong
            Some(Err(err)) => println!("error {}", err),
        }
    }
}

依赖关系

~10–25MB
~420K SLoC