Go to file
Mahesh Bansod dc059b947d fix: create new session when the current expires 2021-11-19 18:56:28 +05:30
cli fix: create new session when the current expires 2021-11-19 18:56:28 +05:30
client Caching the ServerInformation for CLI 2021-11-07 20:27:38 +05:30
jsonrpc2-client Caching the ServerInformation for CLI 2021-11-07 20:27:38 +05:30
rawclient Added method to specify host of raw client 2021-11-07 18:49:15 +05:30
types Moved Display impl from types to cli crate. added pager to feed. 2021-11-07 18:29:14 +05:30
.gitignore fix: session_challenge test py file path 2021-10-23 01:58:28 +05:30
Cargo.lock Moved Display impl from types to cli crate. added pager to feed. 2021-11-07 18:29:14 +05:30
Cargo.toml Switched CLI to use single session + made it work with the new restructured api 2021-11-03 12:41:38 +05:30
README.md Made get-peer example more readable and updated readme 2021-11-03 12:54:59 +05:30

README.md

socialvoid-rs

This repository contains

  1. a crate that is a high level implementation of a library to access the Socialvoid API. It can be used to build clients for the platform or build automated programs to perform tasks on the Socialvoid network.
  2. a simple CLI client for Socialvoid based on the crate

Library Documentation

//TODO: link to this crate's documentation once it's up.

Most of the methods are async
Methods can be accessed as <namespace>.<methodname>
For example, to invoke the authenticate_user method in session namespace, you can use sv.session.authenticate_user(...).

Incase any method isn't available in this crate, you can make raw requests using the socialvoid-rawclient crate, the latest full API Documentation of Socialvoid is here

Example for the library

A simple example that logs you in and shows peer information.

// You need to make a file called `test_creds.test` in the root of the project for
// this example to run.
// The file is a JSON file with the following format
// {
//     "username":"yourusername",
//     "password":"yourpassword"
// }

#[tokio::main]
async fn main() {
    let creds: serde_json::Value =
        serde_json::from_str(&std::fs::read_to_string("test_creds.test").unwrap())
            .expect("Couldn't read the credentials. Check the JSON format or something");

    let sv = socialvoid::new_with_defaults().await.unwrap();
    let username = creds["username"].as_str().unwrap().to_string();
    let password = creds["password"].as_str().unwrap().to_string();
    sv.session
        .authenticate_user(username, password, None)
        .await
        .unwrap();

    let peer = sv.network.get_me().await.unwrap();

    println!("{:?}", peer);
    sv.session.logout().await.unwrap();

    assert_eq!(peer.username, username);
}

More examples can be found in client/examples

Installation of the CLI client

  1. Clone this repository
  2. cd into the repository
  3. Install the cli
    cargo install --path cli

Usage of the CLI client

See the full documentation here(TODO: a link to full documentation)

Some of the commands are:

Register an account

socialvoid-cli register

Login in to an account

socialvoid-cli login

Get the current peer

socialvoid-cli get-me

//TODO: add contributors section