4个版本
0.5.1-api+0.5.2 | 2024年3月23日 |
---|---|
0.5.0-0.5.2 | 2023年3月19日 |
0.4.2-0.5.2 | 2023年3月18日 |
0.4.2-0.5.1 | 2023年3月17日 |
#1397 in 网络编程
132 每月下载量
97KB
1K SLoC
kRPC客户端
Rust客户端,用于kRPC(Kerbal Space Program的远程过程调用)。
状态
正在进行中。欢迎提交错误报告和贡献。所有过程似乎都正常工作,但需要更多测试。流工作正常,但事件仍在开发中。
krpc-client = { git = "https://github.com/kladd/krpc-client" }
示例
使用标准过程调用向船员打招呼。
let client = Client::new("kRPC TEST", "127.0.0.1", 50000, 50001).unwrap();
let sc = SpaceCenter::new(client.clone());
// Check out our vessel.
let ship = sc.get_active_vessel()?;
// Greet the crew.
match ship.get_crew()?.first() {
Some(kerbal) => println!(
"Hello, {}. Welcome to {}",
kerbal.get_name()?,
ship.get_name()?
),
None => println!("{} is unkerbaled!", ship.get_name()?),
};
使用流
使用流跟踪时间。
let client = Client::new("kRPC TEST", "127.0.0.1", 50000, 50001)?;
let space_center = SpaceCenter::new(client.clone());
// Set up a stream.
let ut_stream = space_center.get_ut_stream()?;
ut_stream.set_rate(1f32)?;
// Wait for updates, and print the current value.
for _ in 0..10 {
ut_stream.wait();
println!("It's {} o'clock", ut_stream.get()?);
}
功能
fmt
(默认):格式化生成的服务。移除以加快构建速度,生成的文件难以阅读。
黑客攻击
krpc-client/client.rs
包含基本的连接、请求和响应处理。krpc-client/lib.rs
声明用于编码和解码RPC类型的特质。krpc_build
(由krpc-client/build.rs
使用),从service_definitions/*.json
中的定义生成RPC类型和过程,并生成在krpc-client/lib.rs
中声明的编码和解码特质的实现。
依赖项
~1.8–4MB
~71K SLoC