2 个版本

0.1.1 2022 年 2 月 26 日
0.1.0 2022 年 2 月 21 日

#8 in #scuttlebutt

LGPL-3.0AGPL-3.0

74KB
834

golgi

高尔基复合体(又称高尔基体或高尔基囊)在囊泡被发送到目的地之前,将蛋白质包装成膜结合的囊泡。


简介

Golgi 是一个异步、实验性的 Scuttlebutt 客户端,旨在促进 Scuttlebutt 应用程序的开发。它提供了一个高级 API 来与 sbot 实例交互,并使用 kuska-ssb 库进行 RPC 调用。当前的开发工作主要集中在 go-sbot 兼容性上。

功能

Golgi 提供了调用单个 RPC 方法的能力,同时也提供了一些方便的方法,这些方法可能涉及多个 RPC 调用以及/或处理从这些调用接收到的数据。主要的交互方式是 Sbot struct

功能包括发布各种类型的消息;检索消息(例如 aboutdescription 消息)并形成查询;关注、取消关注、屏蔽和解除屏蔽一个对等方;查询社交图;以及生成 pub 邀请码。

示例用法

以下展示了基本用法。更多示例请访问 golgi 仓库中的 示例目录

use golgi::{GolgiError, Sbot};

pub async fn run() -> Result<(), GolgiError> {
    // Attempt to initialise a connection to an sbot instance using the default
    // IP address, port and network key (aka. capabilities key).
    let mut sbot_client = Sbot::init(None, None).await?;

    // Call the `whoami` RPC method to retrieve the public key for the sbot
    // identity.
    let id = sbot_client.whoami().await?;
    
    // Print the public key (identity) to `stdout`.
    println!("{}", id);

    // Compose an SSB post message type.
    let post = SsbMessageContent::Post {
        text: "Biology, eh?!".to_string(),
        mentions: None,
    };

    // Publish the post.
    let post_msg_reference = sbot_client.publish(post).await?;

    // Print the reference (sigil-link) for the published post.
    println!("{}", post_msg_reference);

    Ok(())
}

作者

许可证

LGPL-3.0。

依赖关系

~27–38MB
~383K SLoC