#bgzf #file #file-reader #random-access #read #formatted #bgzip

bgzf_rust_reader

本库通过 RUST 语言读取并提供对 BGZF(Bgzip) 格式文件的随机访问。

3 个不稳定版本

0.2.1 2021年7月24日
0.2.0 2021年7月18日
0.1.0 2021年7月17日

#654 in 压缩

MIT/Apache

18KB
348

bgzf_rust_reader

本库帮助使用 RUST 语言读取并提供对 BGZF(Bgzip) 格式文件的随机访问。

来源:http://www.htslib.org/doc/bgzip.html

"Bgzip 以与 gzip 类似的方式压缩文件,并与之兼容。文件被压缩成一系列小的(小于 64K)'BGZF' 块。这允许在压缩文件上建立索引,并用于检索数据的一部分,而无需解压缩整个文件。"

使用算法

解压缩时使用 'deflate' 算法,更多详细信息请参阅此链接: https://tools.ietf.org/html/rfc1951

用法

以下是使用 bgzf 读取器的步骤:第一步是使用新功能创建一个 BGZF 实例,之后可以使用读取、查找等方法对文件进行随机访问。

use bgzf_rust_reader::BgzfReader;
use std::str;

//Getting the reader instance by using new function and passing the file path

let reader = BgzfReader::new(String::from("bgzf_test.bgz")).unwrap();

//jumping to 29th position of the file starting from 0th index
reader.seek(29);

let mut test_buffer = vec![0; 20];

//reading 20 bytes to the vector test_buffer
reader.read_to(&mut test_buffer);

//the 20 bytes after 29th position in the example file is " see how it reacts. "
assert_eq!(
    " see how it reacts. ",
    str::from_utf8(&test_buffer).unwrap()
  );

作者

Swoven Pokharel: [email protected]

依赖

~1.5MB
~17K SLoC