#protobuf #read #write #read-write #google

pbuf

从/向实现了 protobuf 读写操作的任何东西进行读写

3 个版本

使用旧的 Rust 2015

0.3.31 2016 年 12 月 24 日
0.3.3 2016 年 12 月 24 日
0.3.2 2016 年 7 月 1 日

#365 in #protobuf

MIT 许可证

4KB
51

Build Status MIT licensed

pbuf

从/向实现了 protobuf 读写操作的任何东西进行读写...

示例假设 Msg 是您的 protobuf,msg.rs 是它所在的位置,有关如何从 .proto 文件生成 .rs 的信息,请参阅 rust-protobuf

添加到 Cargo.toml

pbuf = "0.3.2"

读取示例

extern crate pbuf;
extern crate protobuf;

use std::io::prelude::*;
use std::io::{BufReader, self};
use std::fs::File;

mod msg;
use msg::Msg;

use pbuf::read_pbuf;

let mut reader = Box::new(BufReader::new(io::stdin()));
// To read from file
// let mut reader = Box::new(BufReader::new(File::open  (&<file pointer>).unwrap()))

// Reads entire buffer and fill
let mut msgs: Vec<Msg> = read_pbuf(&mut reader);

写入示例

extern crate pbuf;
extern crate protobuf;

use std::io::prelude::*;
use std::io::{BufWriter, self};
use std::fs::File;

mod msg;
use msg::Msg;

use pbuf::write_pbuf;

let mut writer = Box::new(BufWriter::new(io::stdout()));
// To write to file
// let mut writer = Box::new(BufWriter::new(File::create(&<file pointer>).unwrap()))

for msg in msgs.iter() {
    write_pbuf(msg, &mut writer);
  }

依赖关系

~1.5MB
~31K SLoC