Expand description
§golgi
The Golgi complex (aka. Golgi apparatus or Golgi body) packages proteins into membrane-bound vesicles inside the cell before the vesicles are sent to their destination.
§Introduction
Golgi is an asynchronous, experimental Scuttlebutt client that aims to facilitate Scuttlebutt application development. It provides a high-level API for interacting with an sbot instance and uses the kuska-ssb libraries to make RPC calls. Development efforts are currently oriented towards go-sbot interoperability.
§Features
Golgi offers the ability to invoke individual RPC methods while also
providing a number of convenience methods which may involve multiple RPC
calls and / or the processing of data received from those calls. The
Sbot
struct
is the primary means of interacting
with the library.
Features include the ability to publish messages of various kinds; to
retrieve messages (e.g. about
and description
messages) and formulate
queries; to follow, unfollow, block and unblock a peer; to query the social
graph; and to generate pub invite codes.
Visit the API modules to view the available methods.
§Example Usage
Basic usage is demonstrated below. Visit the examples directory in the golgi
repository for
more comprehensive examples.
use golgi::{messages::SsbMessageContent, GolgiError, Sbot};
pub async fn run() -> Result<(), GolgiError> {
// Attempt to connect 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(())
}
Re-exports§
pub use crate::error::GolgiError;
pub use crate::sbot::Sbot;
Modules§
- API for interacting with a running go-sbot instance.
- Blob utilities which do not require RPC calls.
- Custom error type.
- Message types and conversion methods.
- Sbot type and connection-related methods.
- Utility methods.