Work in progress! Almost finished.
mrxbuilder (Mutant Remix builder) is an emoji pack build tool. Takes in a TOML manifest and SVGs and outputs an emoji pack in various formats.
- Completely emoji pack agnostic with no hard-coded assumptions
- Lightning fast and multithreaded, no temporary files written to disk
- Cache friendly, only re-encodes what is necessary
- No runtime depdendencies
- Cross-platform, with prebuilt binaries for Linux, Windows and Mac OS
If you are moving from orxporter, check out the manifest porter repository for a tool to semi-automatically convert your orx manifest to the new format.
- Recolors emojis using colormaps to avoid repeating SVGs with different colors
- Supports building to
svg,png,avifandwebpformats with various compression methods - Outputs to a
directoryor directly to azip/tarfile with various compression methods - Really simple to run with only 3 arguments. Formats are pre-defined in the manifest, and selected for building using tags
Check out the documentation and sample input for input manifest and output metadata specifications and examples.
This guide assumes general familiarity with the command line. mrxbuilder has no GUI, but there is not
mrxbuilder is run from the command line. It takes 3-4 arguments:
- path to the index manifest file
- output path (cache is also stored here)
- tags for the targets to build (comma separated)
--dryflag to skip writing any files
Download a prebuilt binary for your platform from the releases page
./mrxbuilder-v*-* ./sample-input/index.toml ./output debug,release [--dry]git clone https://github.com/mutant-remix/mrxbuilder- Basic build tools
- Rust toolchain
- nasm (for building
rav1e)
Windows 10+
Note: You can use WSL instead
winget install -e --id=Rustlang.Rustup
winget install -e --id=NASM.NASM
# Command prompt
setx PATH "%PATH%;%USERPROFILE%\AppData\Local\bin\NASM\nasm.exe"
# Powershell
$env:Path += ";%USERPROFILE%\AppData\Local\bin\NASM\nasm.exe"
# Restart your terminal
rustup default stable
# Restart your terminal againDebian-based Linux (Ubuntu, Pop!_OS, etc.)
apt install build-essential nasm curl
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # select 1Arch-based Linux (Arch, Manjaro, etc.)
pacman -Sy base-devel rustup nasm
rustup default stableAlpine Linux
apk add build-base rustup nasm
rustup-init # select 1Mac OS
brew install nasm curl
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # select 1cargo run --release -- ./sample-input/index.toml ./out debug,release [--dry]
# or use mold for faster builds (linux only, optional)
mold -run cargo run --release -- ./sample-input/index.toml ./out debug,release [--dry]Note: Do not run it without the
--releaseflag, as it will be extremely slow.
- Support for more formats, such as
jpeg-xl - Support for writing EXIF metadata and svg metadata. help wanted
- Support for fonts. help wanted
Licensed under AGPLv3