1 个不稳定版本
0.1.0 | 2020年6月9日 |
---|
#62 in #external
24KB
536 行
subspace
subspace 是一个 高度不稳定 的方便的 crate,用于设置与外部进程(节点)的管理和通信。
示例
将 subspace
添加到您的 Cargo.toml
[dependencies]
subspace = "0.1.0"
在主进程中,创建一个 External
结构体。
// For the full example, check tests/node_tests.rs
// name is the path + filename of the executable to launch
let name = "target/debug/example";
// address is the hostname + port the node should bind to
let address = "localhost:2345";
External::new(&name, address.to_string())?;
在辅助进程中,解析命令行参数(示例中使用 clap)并创建一个节点。
fn main() {
// Commandline arguments handled with clap, External will call the executable with --addr localhost:2345
//
let matches = App::new("Subspace example node")
.author("ron")
.about("An example process for subspace integration tests")
.version("0.1")
.arg(
Arg::with_name("addr")
.short("a")
.long("addr")
.help("Address this node should bind to")
.takes_value(true),
)
.get_matches();
// get address to bind to from arguments, then construct "this node"
//
let addr = matches.value_of("addr").unwrap();
let mut node = Node::new(addr).unwrap();
// call node.get_node_message() in this executables message loop, and act on it
//
loop {
match node.get_node_message() {
Some(NodeMessage::Exit) => break,
_ => (),
}
// do work
}
}
许可
许可协议为以下之一
- Apache License,版本 2.0 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可协议 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则您提交的任何贡献,根据 Apache-2.0 许可证的定义,将按上述方式双许可,不附加任何额外条款或条件。
依赖项
~1.2–2MB
~35K SLoC