pubky

Crates.iopubky
lib.rspubky
version0.3.0
sourcesrc
created_at2024-09-06 08:06:37.282342
updated_at2024-10-25 08:51:54.652858
descriptionPubky core client
homepage
repositoryhttps://github.com/pubky/pubky
max_upload_size
id1365642
size151,510
Nuh (Nuhvi)

documentation

README

Pubky

Rust implementation implementation of Pubky client.

Quick Start

use pkarr::mainline::Testnet;
use pkarr::Keypair;
use pubky_homeserver::Homeserver;
use pubky::PubkyClient;

#[tokio::main]
async fn main () {
  // Mainline Dht testnet and a temporary homeserver for unit testing.
  let testnet = Testnet::new(10);
  let server = Homeserver::start_test(&testnet).await.unwrap();

  let client = PubkyClient::test(&testnet);

  // Uncomment the following line instead if you are not just testing.
  // let client PubkyClient::builder().build(); 

  // Generate a keypair
  let keypair = Keypair::random();

  // Signup to a Homeserver
  let keypair = Keypair::random();
  client.signup(&keypair, &server.public_key()).await.unwrap();

  // Write data.
  let url = format!("pubky://{}/pub/foo.txt", keypair.public_key());
  let url = url.as_str();

  client.put(url, &[0, 1, 2, 3, 4]).await.unwrap();

  // Read using a Public key based link
  let response = client.get(url).await.unwrap().unwrap();

  assert_eq!(response, bytes::Bytes::from(vec![0, 1, 2, 3, 4]));

  // Delet an entry.
  client.delete(url).await.unwrap();

  let response = client.get(url).await.unwrap();

  assert_eq!(response, None);
}

Example code

Check more examples for using the Pubky client.

Commit count: 291

cargo fmt