2个不稳定版本
使用旧的Rust 2015
0.2.0 | 2017年11月24日 |
---|---|
0.1.0 | 2017年3月2日 |
#4 在 #carbon
61KB
649 行
Carbon绑定库为Tokio
状态:测试版
一个提交数据到carbon(graphite)的库。使用tokio在异步主循环中工作。
功能
- 可插拔的名称解析(服务发现)
- 动态重新连接到新的主机
- 连接到多个主机,如果名称解析到多个主机则重复记录。
许可证
许可证为以下之一
- Apache许可证2.0版本(./LICENSE-APACHE或https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证(./LICENSE-MIT或http://opensource.org/licenses/MIT)由您选择。
贡献
除非您明确声明,否则根据Apache-2.0许可证定义的,任何有意提交给作品并由您包括在内的贡献,均应按上述方式双重许可,不附加任何额外条款或条件。
lib.rs
:
Carbon客户端协议实现
高级接口
let (carbon, init) = Carbon::new(&Config::new().done());
init.connect_to(resolver.subscribe("localhost:2003"), &handle);
// now you can submit metrics
carbon.add_metric("my.metric", 10);
这允许协议
- 连接到解析到的所有地址
- 在失败时重新连接
- 当DNS名称解析到的IP更改时重新连接到新主机
请参阅示例以获取更多完整示例。
低级接口
如果您不想使用连接池,可以将carbon实例连接到特定连接
use tk_carbon::{Carbon, Config};
let (carbon, init) = Carbon::new(&Config::new().done());
handle.spawn(TcpStream::connect(&addr, &handle)
.and_then(move |sock| init.from_connection(sock, &handle2))
.map_err(|e| unimplemented!()));
// use carbon the same way as above
carbon.add_metric("my.metric", 10);
通用
Carbon
对象对于连接池和原始接口是相同的,并且只要运行的tokio循环的网络代码仍然存活,就可以从任何线程中使用。
您不必等待连接建立后发送度量,它们将被缓冲到配置限制(请参阅Config
的文档)。
依赖关系
~7MB
~108K SLoC