fastpack-0.21.0 is not a library.
FastPack
Texture atlas packer written in Rust. Native GUI as the primary interface, plus a full CLI and TUI. Designed as an open-source replacement for TexturePacker.
Features
Packing
- MaxRects (5 heuristics), Grid, and Basic strip algorithms
- Trim modes: None, Trim, Crop, CropKeepPos, Polygon (convex hull)
- Extrusion, rotation, nine-patch metadata, pivot points
- Alias detection — deduplicates pixel-identical sprites
- Multipack — overflow sprites across multiple sheets
- Multi-resolution scale variants with per-variant suffix
Export
- JSON Hash, JSON Array, Phaser 3, PixiJS
- PNG (oxipng lossless), JPEG (mozjpeg), WebP, lossy PNG (imagequant)
GUI
- Real-time atlas preview
- Collapsible sprite tree with thumbnail previews
- Watch mode — repacks on file change
.fpsheetproject files (TOML)- Multi-language UI
Install
Download the installer for your platform from the releases page:
- Windows —
fastpack-windows-x86_64.msi - macOS (Apple Silicon) —
fastpack-macos-aarch64.dmg - macOS (Intel) —
fastpack-macos-x86_64.dmg - Linux —
fastpack-linux-x86_64.tar.gz
macOS note: The app is not code-signed, so macOS will show "FastPack is damaged and can't be opened." after mounting the DMG. Run this once after copying the app to /Applications:
Or install from crates.io:
Usage
# Open the GUI (default when no subcommand is given)
# Pack a directory of sprites
# Pack with options
# Load settings from a project file
# Watch for changes and repack automatically
# Split an atlas back into individual sprites
# Generate a default project file
Project File
Settings live in a .fpsheet TOML file:
[]
= "1"
[]
= "atlas"
= "output/"
= "png"
= "rgba8888"
= "json_hash"
= 95
[]
= 4096
= 4096
= "pot"
= false
= true
= "good"
= 2
= 2
[]
= "trim"
= 1
= 0
= true
[]
= "max_rects"
= "best_short_side_fit"
[[]]
= 1.0
= "@1x"
= "smooth"
[[]]
= "sprites/"
= "**/*.png"
Export Formats
data_format in the project file or --data-format on the CLI accepts:
json_hash— TexturePacker-compatible JSON with frames as an object keyed by sprite ID. Default.json_array— Same structure but frames as an array, each entry with afilenamefield.phaser3— Single JSON file with atexturesarray. Compatible withscene.load.multiatlas().pixijs— JSON Hash format compatible with PixiJS sprite sheet loaders.
Building from Source
Requires Rust 1.85+.
The binary is at target/release/fastpack.
License
Licensed under MIT.