15 个版本 (2 个稳定版)
1.2.0 | 2024 年 1 月 21 日 |
---|---|
1.1.0 | 2021 年 12 月 31 日 |
0.7.6 | 2021 年 12 月 28 日 |
#1837 在 网络编程
605KB
14K SLoC
HBase Thrift
这个库类似于 happybase,但使用 Rust 编写。它提供了一种与 HBase 的 Thrift 接口交互的方式
它提供了一些包装器,使得与 HBase 的 Thrift 规范 生成的代码交互更加容易
此外,它通过 thrift-pool 提供连接池:请参阅 池示例
示例
use hbase_thrift::hbase::{HbaseSyncClient, THbaseSyncClient};
use thrift::{
protocol::{TBinaryInputProtocol, TBinaryOutputProtocol},
transport::{TBufferedReadTransport, TBufferedWriteTransport, TIoChannel, TTcpChannel},
};
fn main() -> Result<(), thrift::Error> {
let mut channel = TTcpChannel::new();
channel.open("localhost:9090")?;
let (i_chan, o_chan) = channel.split()?;
let i_prot = TBinaryInputProtocol::new(TBufferedReadTransport::new(i_chan), true);
let o_prot = TBinaryOutputProtocol::new(TBufferedWriteTransport::new(o_chan), true);
let mut client = HbaseSyncClient::new(i_prot, o_prot);
let tables = client.get_table_names()?;
println!(
"tables: {:?}",
tables
.into_iter()
.map(|v| String::from_utf8(v).unwrap())
.collect::<Vec<_>>()
);
Ok(())
}
其他示例位于 示例目录
还可以参考 vector-http-sink-hbase,该库的创建激发了本库的诞生
依赖项
~0.9–7.5MB
~51K SLoC