2 unstable releases
new 0.3.0 | Oct 25, 2024 |
---|---|
0.1.0 | Sep 6, 2024 |
#1792 in Network programming
113 downloads per month
95KB
2K
SLoC
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.
Dependencies
~8–20MB
~314K SLoC