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 网页编程
每月 1,105 次下载
用于 5 个 crates (3 直接)
680KB
16K SLoC
ATrium API:Bluesky 的 atproto 服务的 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 默认启用 agent
和 bluesky
功能。如果不需要,可以选择禁用。
agent
:启用agent
模块。bluesky
:启用针对 bluesky 特定的 Lexicon 定义和 XRPC 方法。- 还可以仅启用由
namespace-*
指定的命名空间。
- 还可以仅启用由
依赖项
~6–9.5MB
~161K SLoC