#bare-bones #client #farcaster #hub #hubs #definition #tokio

hub-rs

一个用于与 Farcaster 集中式交换进行交互的简单 Rust 库

4 个版本

0.1.3 2023 年 8 月 21 日
0.1.2 2023 年 8 月 7 日
0.1.1 2023 年 8 月 6 日
0.1.0 2023 年 8 月 6 日

#420日期和时间

每月 25 次下载

MIT 许可证

14KB
82

⚠️🚧 hub-rs 目前处于积极开发中,不应假定其已准备好投入生产 🚧⚠️

hub-rs

hub-rs 是一个用于与 Farcaster 集中式交换进行交互的简单 Rust 库

所有定义和函数都是通过 tonic 自动生成的

Protobufs 由 Farcaster monorepo 提供

如何使用

首先,安装软件包

hub-rs = { version = "0.1.3" }cargo add hub-rs

然后,你可以在项目中使用它。要创建一个客户端并获取连接的集中式交换信息,你可能需要编写如下内容

use hub_rs::hub_service_client::HubServiceClient;
use hub_rs::HubInfoRequest;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Secure or insecure connections are defined by the protocol you provide, either http or https
    let mut client = HubServiceClient::connect("https://mainnet.useportals.app:2283").await?;

    let info = client.get_info(HubInfoRequest { db_stats: true }).await?;


    println!("{:?}", info.into_inner());

    Ok(())
}

写操作

目前,这里不支持将数据写入集中式交换。如果你想要查看/构建它,可以查看 landon-write-operations 分支(在 src/builders/make_cast_add.rs 中)。

提供的额外功能

目前,提供了两个额外的函数以改善用户体验

  • bytes_to_hex_string - 将 Vec<u8>[u8; 32/64] 类型转换为十六进制字符串
  • hex_string_to_bytes - 将十六进制字符串转换为 Vec<u8>

常见问题解答

Q: 为什么?

A: 🦀🦀🦀 🚀🚀🚀

Q: 这比 hub-nodejs 更快吗?

A: 从理论上讲,是的,这仅仅是因为 Rust 的特性。然而,差异可能非常小,因为其主要只是请求,真正的瓶颈是 I/O 和互联网速度。

尽管如此,如果你有兴趣进行一些基准测试,可以提交一个 PR 或在 Telegram 上联系我:@landon_xyz

依赖项

~14–25MB
~440K SLoC