datasus-dbc

Crates.iodatasus-dbc
lib.rsdatasus-dbc
version0.1.1
sourcesrc
created_at2023-12-06 00:34:03.003057
updated_at2023-12-06 02:21:12.210352
descriptionDecompress DATASUS's *.dbc files into *.dbf files.
homepage
repositoryhttps://github.com/mymatsubara/datasus-dbc
max_upload_size
id1059560
size32,435
Murilo Matsubara (mymatsubara)

documentation

https://docs.rs/datasus-dbc

README

datasus-dbc

crates.io docs.rs

Decompress *.dbc files usually found in Brazil's DATASUS ftp server into *.dbf files.

The underlying decompression algorithm used in *.dbc files is the implode algorithm from the PKWARE Data Compression Library. This library uses Aaron Griffith's rust implementation of the implode algorithm. Also, this library is heavily inspired by Daniela Petruzalek's pysus. I want to thank both of them, without their work this library would not be possible.

Examples

To decompress a *.dbc file into a *.dbf use decompress:

datasus_dbc::decompress("input.dbc", "output.dbf");

If you want more control over how the *.dbc file is read, you can pass a File or other type which implements Read to into_dbf_reader to get a reader of the decompressed content.

use std::io::Read;

let dbc_file = std::fs::File::open("input.dbc").unwrap();
let mut dbf_reader = datasus_dbc::into_dbf_reader(dbc_file).unwrap();
let mut buf: Vec<u8> = Default::default();
dbf_reader.read_to_end(&mut buf).unwrap();
println!("{:?}", &buf[0..20]);

Found a bug?

Feel free to create an issue here if you found a bug or if you want a new feature!

Commit count: 5

cargo fmt