fastpack-0.29.4 is not a library.
FastPack
Texture atlas packer written in Rust. Ships as a Tauri desktop app and a headless CLI. 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
- Data formats: JSON Hash, JSON Array, Phaser 3, PixiJS
- Texture formats: PNG (oxipng lossless), JPEG (mozjpeg), WebP, DXT1 (BC1), DXT5 (BC3)
- Pixel formats: RGBA8888, RGB888, RGB565, RGBA4444, RGBA5551, Alpha8
Desktop app
- Real-time atlas preview
- Collapsible sprite tree with thumbnail previews
- Watch mode — repacks on file change
.fpsheetproject files (TOML)- Nine-patch and pivot editors per sprite
- Drag-and-drop folders and project files
- Multi-language UI
Install
Download the desktop app for your platform from the releases page:
- Windows —
fastpack-windows-x86_64-setup.exe - macOS (Apple Silicon) —
fastpack-macos-aarch64.dmg - macOS (Intel) —
fastpack-macos-x86_64.dmg - Linux —
fastpack-linux-x86_64.AppImage
Or install the CLI from crates.io:
CLI Usage
# 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
Run fastpack <subcommand> --help for the full flag list.
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+.
CLI only:
The binary is at target/release/fastpack.
Desktop app:
The Tauri app also requires Node.js and pnpm. From the crates/fastpack-tauri directory:
The installer is placed under src-tauri/target/release/bundle/.
License
Licensed under MIT.