50 个版本 (23 个破坏性更新)

0.24.2 2024 年 8 月 14 日
0.23.2 2024 年 7 月 3 日
0.20.0 2024 年 3 月 27 日
0.15.0 2023 年 12 月 23 日
0.4.0 2023 年 6 月 30 日

#205 in 网页编程

Download history 5/week @ 2024-05-03 668/week @ 2024-05-17 258/week @ 2024-05-24 53/week @ 2024-05-31 134/week @ 2024-06-07 253/week @ 2024-06-14 191/week @ 2024-06-21 193/week @ 2024-06-28 92/week @ 2024-07-05 30/week @ 2024-07-12 56/week @ 2024-07-19 476/week @ 2024-07-26 81/week @ 2024-08-02 417/week @ 2024-08-09 122/week @ 2024-08-16

每月 1,105 次下载
用于 5 个 crates (3 直接)

MIT 许可

680KB
16K SLoC

ATrium API:Bluesky 的 atproto 服务的 Rust 库

Rust

ATrium API 是一个 Rust 库,它包含了 XRPC 请求及其相关的输入/输出模型类型的定义。这些代码是从 atproto.com 上的 Lexicon 架构生成的。

用法

任何实现了 atrium_xrpc::HttpClient 的 HTTP 客户端都可以用来处理 XRPC 请求。由于 atrium_xrpc_client 提供了几个实现,建议使用适合您项目需求的一个。

use atrium_api::client::AtpServiceClient;
use atrium_xrpc_client::reqwest::ReqwestClient;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = AtpServiceClient::new(ReqwestClient::new("https://bsky.social"));
    let result = client
        .service
        .com
        .atproto
        .server
        .create_session(
            atrium_api::com::atproto::server::create_session::InputData {
                auth_factor_token: None,
                identifier: "[email protected]".into(),
                password: "hunter2".into(),
            }
            .into(),
        )
        .await;
    println!("{:?}", result);
    Ok(())
}

AtpAgent (agent 功能)

虽然 AtpServiceClient 可以用于简单的 XRPC 调用,但使用具有会话管理等实用功能的 AtpAgent 更好。

use atrium_api::agent::{store::MemorySessionStore, AtpAgent};
use atrium_xrpc_client::reqwest::ReqwestClient;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let agent = AtpAgent::new(
        ReqwestClient::new("https://bsky.social"),
        MemorySessionStore::default(),
    );
    agent.login("[email protected]", "hunter2").await?;
    let result = agent
        .api
        .com
        .atproto
        .server
        .get_session()
        .await?;
    println!("{:?}", result);
    Ok(())
}

功能

上面示例中使用的 AtpAgent 包含在 agent 功能中。atrium-api 默认启用 agentbluesky 功能。如果不需要,可以选择禁用。

  • agent:启用 agent 模块。
  • bluesky:启用针对 bluesky 特定的 Lexicon 定义和 XRPC 方法。
    • 还可以仅启用由 namespace-* 指定的命名空间。

依赖项

~6–9.5MB
~161K SLoC