5 releases
0.0.5 | Dec 29, 2024 |
---|---|
0.0.4 | Dec 29, 2024 |
0.0.3 | Dec 29, 2024 |
0.0.2 | Dec 28, 2024 |
0.0.1 | Dec 15, 2024 |
#28 in Compression
651 downloads per month
1MB
523 lines
FerrumCrimper
A fast, Rust-powered CLI tool for efficient file management, compression, and archival with support for multiple formats and secure data handling.
[!CAUTION] This project is still in active development, use at your own risk! Multithreading support still a work in progress.
Installation 🦾
To install FerrumCrimper, you can either use binaries or build from source.
Using Cargo (Recommended)
If you have cargo installed, simply run the command below to install FerrumCrimper on your system!
cargo install fecr
Be sure to check out or crates.io page here!
Looking For Pre-Built Binaries?
Currently, pre-built binaries are unavailable. If you can't use Crates.io, we suggest building from source following the instructions provided below.
Build From Source 🤓
- Ensure that you have Rust and Cargo installed. You can install Rust here.
- Clone the repository:
git clone https://github.com/rockenman1234/ferrumcrimper.git
- Navigate to this folder using the
cd
command. - If you have
make
installed, you may use the following command to compile binaries for your operating system. You may then place them in a directory included in your system’sPATH
. Compiled binaries will be located under./target/release/
make
- (Optional) If you do not have
make
installed, you can run the following commands yourself using cargo as a substitute:
cargo build --release --verbose
./target/release/fecr --help
Why Use FerrumCrimper? ℹ️
FerrumCrimper is designed to provide efficient file management and compression with these benefits:
- Speed and Performance: Built with Rust, FerrumCrimper delivers fast compression and extraction, optimized for low latency and efficient resource usage. It also supports threaded operation, enabling faster speeds by leveraging multiple cores for parallel processing.
- Simple Command-Line Interface: FerrumCrimper’s straightforward CLI makes it easy to zip or unzip files with just a few commands.
- Secure Data Handling: With strong Rust-based implementations, the tool ensures safe and secure handling of data throughout compression and archival processes.
- Multi-Format Support: FerrumCrimper supports various file formats, making it a versatile tool for a variety of workflows.
Supported File Formats ⚙️
[!NOTE] This project is still in active development, as of
v0.0.2
the archiving and unarchiving of zip files is suppprted. As ofv0.0.5
, the archiving and unarchiving of tar files is supported. See the usage below for more information. Runfecr -h
for more info.
FerrumCrimper plans to support a wide range of file formats for both compression and extraction:
- ZIP: Zip Archive and Unarchive Support:
- Use
--zip
or-z
to compress a directory. - Use
--unzip
or-uz
to unextract a file. - Use
--name
or-n
to specify the name of the output. - Use
--output
or-o
to specify the output directory. - Use
--level
or-l
to specify the compression level.- The following compression levels are supported:
- Deflated levels range from 0 to 9. Default is 6.
- Bzip2 levels range from 0 to 9. Default is 6.
- Zstd levels range from -7 to 22, with zero being mapped to the level. Default is 3.
- The following compression levels are supported:
- Use
--compression
or-c
to specify the compression method.- The following compression methods are supported:
- bzip2 (bzip)
- deflate (default)
- zstd (z)
- The following compression methods are supported:
- Use
- TAR: Tar archive and unarchive support:
- Use
--tar
or-t
to compress a directory. - Use
--untar
or-ut
to unextract a file. - Use
--name
or-n
to specify the name of the output. - Use
--output
or-o
to specify the output directory.
- Use
- GZ: Gzip support coming soon!
- 7Z: 7zip support coming soon!
- BZIP2: BZip2 support coming soon!
- XZ: Xz support comming soon!
- Others: Additional formats will be supported in future updates.
License 👨⚖️
This project is licensed under the GNU GPLv2 License.
Contributing 🫶
We love and welcome contributions! To get started:
- Fork this repository.
- Create a new branch for your feature or bug fix.
- Make your changes, and test thoroughly.
- Submit a pull request with a description of your changes, and we'll take a look - thanks!
Please read our code of conduct before submitting a pull request.
Dependencies
~8–17MB
~246K SLoC