Skip to content

Instantly share code, notes, and snippets.

@AljoschaMeyer
Created March 11, 2018 21:22
Show Gist options
  • Save AljoschaMeyer/6f61477f7083e9e1a45d4f6651ff5f2f to your computer and use it in GitHub Desktop.
Save AljoschaMeyer/6f61477f7083e9e1a45d4f6651ff5f2f to your computer and use it in GitHub Desktop.
Demo of ssb-client-rs
[package]
name = "demo-ssb-client"
version = "0.1.0"
authors = ["AljoschaMeyer <mail@aljoscha-meyer.de>"]
[dependencies]
tokio = "0.1.3"
futures = "0.1.18"
sodiumoxide = "0.0.16"
secret_stream = "0.2.0"
ssb-keyfile = "0.1.2"
ssb-common = "0.3.0"
ssb-client = "0.3.0"
serde = "1.0.27"
serde_derive = "1.0.27"
serde_json = "1.0.9"
#![feature(try_from)]
#![feature(ip_constructors)]
extern crate tokio;
extern crate futures;
extern crate sodiumoxide;
extern crate secret_stream;
extern crate ssb_keyfile;
extern crate ssb_common;
extern crate ssb_client;
extern crate serde;
#[macro_use]
extern crate serde_derive;
extern crate serde_json;
use std::net::{SocketAddr, Ipv6Addr};
use std::convert::TryInto;
use tokio::executor::current_thread;
use tokio::net::TcpStream;
use tokio::io::AsyncRead;
use futures::prelude::*;
// use secret_stream::OwningClient;
// use sodiumoxide::crypto::box_;
//
// use ssb_keyfile::load_or_create_keys;
use ssb_common::{MAINNET_IDENTIFIER, DEFAULT_TCP_PORT};
// use ssb_client::ssb;
fn main() {
// sodiumoxide::init();
//
// let (pk, sk) = load_or_create_keys().unwrap();
// let pk = pk.try_into().unwrap();
// let sk = sk.try_into().unwrap();
// let (ephemeral_pk, ephemeral_sk) = box_::gen_keypair();
let addr = SocketAddr::new(Ipv6Addr::localhost().into(), DEFAULT_TCP_PORT);
let do_stuff = TcpStream::connect(&addr)
.map(|_| println!("yay"))
// .and_then(move |tcp| {
// OwningClient::new(tcp,
// MAINNET_IDENTIFIER,
// pk,
// sk,
// ephemeral_pk,
// ephemeral_sk,
// pk)
// .map_err(|err| panic!("{:?}", err))
// })
// .map(|connection| {
// let (read, write) = connection.unwrap().split();
// let (mut client, receive, _) = ssb(read, write);
// current_thread::spawn(receive.map_err(|err| panic!("{:?}", err)));
//
// let (whoami_req, whoami_res) = client.whoami();
// current_thread::spawn(whoami_req.map_err(|err| panic!("{:?}", err)));
// current_thread::spawn(whoami_res
// .map(|who_i_am| println!("{:?}", who_i_am))
// .map_err(|err| panic!("{:?}", err)));
// })
.map_err(|err| panic!("{:?}", err));
current_thread::run(|_| current_thread::spawn(do_stuff));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment