#sleep #dat #protocols #parser #header #format

sleep-parser

解析 Dat 协议 SLEEP 文件

11 个版本 (破坏性更新)

0.8.0 2018年12月28日
0.7.0 2018年10月18日
0.6.0 2018年6月15日
0.2.0 2018年3月30日

#2452解析器实现

Download history 3/week @ 2024-03-14 8/week @ 2024-03-21 28/week @ 2024-03-28 4/week @ 2024-04-04 1/week @ 2024-04-18 1/week @ 2024-04-25 2/week @ 2024-05-16 1/week @ 2024-05-30

83 每月下载次数

MIT/Apache

17KB
215

sleep-parser

crates.io version build status downloads docs.rs docs

解析 Dat 协议 SLEEP 文件

使用方法

extern crate sleep_parser as sleep_parser;

use sleep_parser::{FileType, HashType, Header};
use std::fs::File;
use std::io::{BufRead, BufReader};

let file = File::open("tests/fixtures/content.bitfield").unwrap();
let mut reader = BufReader::with_capacity(32, file);
let buffer = reader.fill_buf().unwrap();
let header = Header::from_vec(&buffer).unwrap();
assert!(header.is_bitfield());

格式

<32 byte header>
  <4 byte magic string: 0x05025702>
  <1 byte version number: 0>
  <2 byte entry size: 40>
  <1 byte algorithm name length prefix: 7>
  <7 byte algorithm name: BLAKE2b>
  <17 zeroes>
<40 byte entries>
  <32 byte BLAKE2b hash>
  <8 byte Uint64BE children leaf byte length>

安装

$ cargo add sleep-parser

许可证

MITApache-2.0

依赖关系

~185KB