11 releases (4 stable)
1.3.1 | May 4, 2024 |
---|---|
1.2.2 | May 3, 2024 |
1.2.0 |
|
1.1.0 | Dec 25, 2023 |
0.1.12 | Jan 27, 2023 |
#45 in Compression
749 downloads per month
13KB
204 lines
Rust Factorio Mod Packer
Idea behind this project was to create a compiled and fast replacement to my shell script that packed factorio mods (very useful in my Factorio mod development pipeline).
This program packs all files in current direcory (excluding unix-style hidden directories to ignore git stuff) into a properly-formatted mod and puts it into mods folder ($HOME/.factorio/mods
on Linux or %AppData%\Factorio\mods
on Windows).
Works on Linux and Windows, builds are included on Releases page. MacOS support isn't planned.
All versions are available on GitHub releases page.
Mod File Structure Example
<mod_name>
and <mod_version>
are "name"
and "version"
values from mod's info.json
file.
<mod_name>_<mod_version>.zip
<mod_name>_<mod_version>
info.json
data.lua
control.lua
- etc
Speed
This program manages to outperform (i.e. do the job faster) my 7zip-based build script on my machine (Ryzen 5 3600). This is achieved by using library mtzip (also made by me). It splits the file compression jobs into tasks that can be run concurrently.
Rayon support
rayon
is supported as an alternative to mtzip
's thread management. It can be enabled with rayon
feature, replaces the default behavior. From my personal testing, it results in a lightly lower performance in extreme situations, but nothing that can be noticed without timing the execution time.
Dependencies
~2–10MB
~103K SLoC