1 unstable release
0.1.1 |
|
---|---|
0.1.0 | Jul 17, 2020 |
#68 in #permissions
Used in installer
31KB
666 lines
Artifice Manager
Purpose
This crate provides centralized functionalities for artifice such as permissions requesting/granting as well as configuration retrieval and upkeep. The reason for having a seperate crate for thse functionalities that may only end up being used once or twice is to provide extensibility of the artifice api by exposing dynamic secure configurability
Using the library
In order to use the tools of the artifice network the network must first be installed. In order to do this see
Example Usage
Authenticate Peer
use manager::{ArtificeDB, Manager};
use manager::database::Database;
use networking::peers::ArtificePeer;
use networking::ArtificeHost;
fn main(){
let database = ArtificeDB::default();
let manager = Manager::load(database, b"example password").unwrap();
let host = ArtificeHost::from_host_data(manager.config()).unwrap();
for netstream in host {
let stream = netstream.unwrap();
if manager.authenticate(stream.peer()).unwrap() {
println!("peer authenticated");
}
}
}
Connect
use manager::{ArtificeDB, Manager};
use manager::database::Database;
use networking::peers::ArtificePeer;
use networking::ArtificeHost;
fn main(){
let database = ArtificeDB::default();
let manager = Manager::load(database, b"example_password").unwrap();
let host = ArtificeHost::from_host_data(manager.config()).unwrap();
let peer = manager.get_peer("global_peer_hash").unwrap();
let host = ArtificeHost::from_host_data(manager.config()).unwrap();
let stream = host.connect(peer).unwrap();
}
Dependencies
~20–32MB
~488K SLoC