#proxy #measure #forwarder #client-server #latency #applications #implemented

已删除 meterproxy

一个测量客户端-服务器应用程序延迟和吞吐量的代理

使用旧的 Rust 2015

0.1.1 2016年12月2日
0.1.0 2016年12月2日

#9 in #forwarder

MIT 许可证

15KB
252 代码行

rust-proxy Crates.io

这是一个用 Rust 实现的测量代理,它在客户端和服务器之间进行中继,并测量延迟和吞吐量。异步版本即将推出。

要求

当然,您需要安装 Rust。如果您还没有安装,可以在这里获取:rust-lang.org。您还需要 Cargo 以轻松编译。所需的 rustc 编译器版本是 1.15.0-nightly。

使用方法

要使用代理,请将以下内容添加到您的 Cargo.toml

[dependencies]
meterproxy = "0.1.0"

示例测量代理使用

extern crate meterproxy;
use meterproxy::MeterProxy;
use std::thread;
use std::time::Duration;

fn main() {
    println!("Starting Proxy");
    let meter_proxy=MeterProxy::MeterProxy::new("127.0.0.1".to_string(), 12347,"127.0.0.1".to_string(),12349); 

    let meter_proxy_c=meter_proxy.clone();
    let child_proxy = thread::spawn(move || {
        meter_proxy_c.start();
    });

    let mut n=0;
    let sleep_time=2000;
    while n<100{
        n += 1;

        //Do something
        thread::sleep(Duration::from_millis(sleep_time));

        println!("The measured latency 'till now: {:.3} ms",meter_proxy.get_latency_ms());
        println!("The measured throughput 'till now: {:.3}",meter_proxy.get_num_bytes_rcvd() as f64/(n*sleep_time) as f64);
    }

    meter_proxy.stop_and_reset();
    let _ = child_proxy.join();

}

依赖关系

~5MB
~98K SLoC