distant core
Library that powers the distant
binary.
🚧 (Alpha stage software) This library is in rapid development and may break or change frequently! 🚧
Details
The distant
library supplies a mixture of functionality and data to run
servers that operate on remote machines and clients that talk to them.
- Asynchronous in nature, powered by
tokio
- Data is serialized to send across the wire via
CBOR
- Encryption & authentication are handled via
orion
- XChaCha20Poly1305 for an authenticated encryption scheme
- BLAKE2b-256 in keyed mode for a second authentication
- Elliptic Curve Diffie-Hellman (ECDH) for key exchange
Installation
You can import the dependency by adding the following to your Cargo.toml
:
[]
= "0.13"
Features
Currently, the library supports the following features:
structopt
: generatesStructOpt
bindings forRequestData
(used by cli to expose request actions)
By default, no features are enabled on the library.
Examples
Below is an example of connecting to a distant server over TCP:
use ;
use PathBuf;
// Load our session using the environment variables
//
// DISTANT_HOST = "..."
// DISTANT_PORT = "..."
// DISTANT_AUTH_KEY = "..."
let mut session = tcp_connect.await.unwrap;
// Send a request under a specific name and wait for a response
let tenant = "my name";
let req = new;
let res = session.send.await.unwrap;
println!;
License
This project is licensed under either of
Apache License, Version 2.0, (LICENSE-APACHE or apache-license) MIT license (LICENSE-MIT or mit-license) at your option.