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.
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]);
Feel free to create an issue here if you found a bug or if you want a new feature!