# brarchive-rs [![Crates.io Version](https://img.shields.io/crates/v/brarchive)](https://crates.io/crates/brarchive) [![Crates.io Total Downloads](https://img.shields.io/crates/d/brarchive)](https://crates.io/crates/brarchive) [![Crates.io License](https://img.shields.io/crates/l/brarchive)](https://github.com/theaddonn/brarchive/blob/main/LICENSE) Library for Bedrock Archives in Rust So Mojang decided we don't have enough archive formats already and now invented their own for some reason, the `.brarchive` format. It is basically nothing more than a simple uncompressed text archive format to bundle multiple files into one. This library implements the format and includes a CLI to encode and decode directories/archives. ## Library Usage Examples One can easily decode/deserialize archives using the library: ```rust fn main() { let bytes = include_bytes!("your_archive.brarchive"); let archive = brarchive::deserialize(&bytes).unwrap(); println!("{:#?}", archive); } ``` One can also easily encode/serialize archives using the library: ```rust use std::collections::BTreeMap; fn main() { // You can use any data-structure such as HashMap, BTreeMap, Vec // Anything that implements IntoIterator let archive = BTreeMap::from([ ("entry_name".to_string(), "entry_content".to_string()) ]); let bytes = brarchive::serialize(&archive).unwrap(); println!("{:?}", bytes); } ``` ## CLI Usage Examples The integrated [brarchive-cli](https://crates.io/crates/brarchive-cli) allows you to easily encode and decode archives with the command line. How to encode a folder: ```shell brarchive-cli encode "path/to/input/folder" "path/to/output/file" ``` How to decode an archive: ```shell brarchive-cli decode "path/to/input/file" "path/to/output/folder ``` You can also get help via the help command: ```shell brarchive-cli help ```