40 lines
1.2 KiB
Markdown
40 lines
1.2 KiB
Markdown
|
<h1 align="center">FileFormats</h1>
|
||
|
|
||
|
<p align="center">
|
||
|
<strong>Documentation and Rust Implementation to learn how most famous file formats store data.</strong>
|
||
|
</p>
|
||
|
|
||
|
<p align="center">
|
||
|
<img src="documentation/images/logo.png" width="200px" alt="FileFormats Logo" />
|
||
|
</p>
|
||
|
|
||
|
---
|
||
|
|
||
|
## About
|
||
|
|
||
|
- [Documentation](./documentation/): Explains the theory for each file format, the advantages and disadvantages compared to other file formats in the same category, why it is stored in that way, and the **User Manual** for the implementation.
|
||
|
- [`fileformats` Implementation](./src/): **Command-Line Interface and Rust Library** to cover most common features of each file format, and understand practically how the theory works. The features of the implementation include, but is not limited to, **read, write, convert, and compare** between file formats.
|
||
|
|
||
|
## Getting Started
|
||
|
|
||
|
### Prerequisites
|
||
|
|
||
|
- [Rust](https://www.rust-lang.org/tools/install) >= v1.74.0
|
||
|
- [cargo-run-bin](https://crates.io/crates/cargo-run-bin) >= v1.6.0 (`cargo install cargo-run-bin`)
|
||
|
|
||
|
### Commands
|
||
|
|
||
|
```sh
|
||
|
# Run `fileformats` CLI
|
||
|
cargo run --help
|
||
|
|
||
|
# Documentation
|
||
|
cargo bin mdbook serve
|
||
|
|
||
|
# Build, Lint, and Test
|
||
|
cargo build
|
||
|
cargo test
|
||
|
cargo clippy --verbose -- -D warnings
|
||
|
cargo fmt -- --check
|
||
|
```
|