Makepad is an AI-accelerated application and game development environment for Rust. It combines a high-performance UI runtime, a live-editable design language, and a fast iteration loop so you can build native and web apps with a tight feedback cycle.
It also has a large set of AI backends integrated for embedding llms or generative AI models inside applications or run them easily on local hardware
This repository contains the core engine, widgets, tools, and examples.
cargo install --path=./tools/cargo_makepad
Then install target toolchains as needed:
cargo makepad wasm install-toolchain
cargo makepad apple ios install-toolchain
cargo makepad apple tvos install-toolchain
cargo makepad android --abi=all install-toolchain
Linux build/runtime dependencies are listed in ./tools/linux_deps.sh:
Use the apt-get command below, or run the script on Ubuntu/WSL2:
sudo apt-get update && sudo apt-get install -y --no-install-recommends build-essential pkg-config clang ca-certificates libssl-dev libx11-dev libxcursor-dev libxkbcommon-dev libxrandr-dev libxi-dev libxinerama-dev libasound2-dev libpulse-dev libwayland-dev wayland-protocols libegl1-mesa-dev libgl1-mesa-dev libgles2-mesa-dev libglx-dev libdrm-dev libgbm-dev libgl1-mesa-dri mesa-vulkan-drivers mesa-utils mesa-utils-extra x11-apps gstreamer1.0-tools gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-gl gstreamer1.0-alsa gstreamer1.0-pipewire libgstreamer1.0-0 libgstreamer-plugins-base1.0-0 libgstreamer-gl1.0-0
Makepad Studio is the main entry point for exploring examples and iterating on UI.
cargo run -p makepad-director --release
If you want a local install (note: may lag the repo):
cargo install makepad-director
Run a few representative apps directly from the repo:
# Splash (simple animated demo)
cargo run -p makepad-example-splash --release
# 3D rendering (glTF)
cargo run -p makepad-example-gltf --release
# Maps
cargo run -p makepad-example-map --release
For built-in maps and voice support, download the assets first:
./tools/download_map.sh
./tools/download_voice.sh
cargo makepad wasm install-toolchain
cargo makepad wasm run -p makepad-example-splash --release
For smaller shipped wasm output, use the shipping-size optimization pass. It keeps the post-link size reduction behavior and pairs well with the existing small profile:
cargo makepad wasm build -p makepad-example-splash --profile=small --strip
To split the wasm payloads, add --split. Bare --split uses an automatic cold-first policy: it first moves defer-safe cold functions into a secondary wasm so startup can begin on the primary first, and if there are no useful cold candidates it falls back to the normal function split. To override the function-splitting threshold directly:
cargo makepad wasm build -p makepad-example-splash --release --strip --split=200
For maximum size reduction, combine --wasm-opt (Binaryen IR optimization) and --brotli (compression). Install Binaryen for --wasm-opt (e.g. brew install binaryen or apt install binaryen):
cargo makepad wasm build -p makepad-example-splash --release --wasm-opt --strip --split --brotli
Notes:
--strip strips custom sections (names, producers, etc.) for smaller binaries.--strip-custom-sections preserves the old behavior when you only want to remove custom sections.--wasm-opt runs Binaryen wasm-opt -Os for IR-level optimization (optional; requires Binaryen).--brotli compresses .wasm and assets with Brotli for delivery.--profile=small uses smaller fonts and pairs well with --strip.--no-threads trims the web thread bridge and thread exports when threading is disabled.--split emits a primary wasm plus secondary payloads (.secondary.wasm, .data.bin) and implies function splitting.--split uses an automatic cold-first split policy.--split=200 switches to an explicit function-body threshold (bytes).http://127.0.0.1:8010
Plug in a device with developer mode enabled, then:
cargo run -p cargo-makepad --release -- android --target=all toolchain-install
cargo run -p cargo-makepad --release -- android run -p makepad-example-ironfish
cargo-makepad internally for non-standard targets.| 日期 | 榜单 | 排名 | 周期新增 | 总 STAR |
|---|