This release is not functional yet, this page only exists to test that the automated DLL building works.
There has been only one release on GitHub so far and the current API does not match the release.
Native libraries
Windows
Windows 64-bit dynamic library
azul.dll
Windows 64-bit static library
azul.lib
Windows MSVC import library
azul.dll.lib
Python Extension (Windows)
azul.pyd
Windows License
LICENSE-WINDOWS.txt
Linux
Linux 64-bit .so
libazul.so
Linux 64-bit .a
libazul.linux.a
Python Extension (Linux)
azul.cpython.so
Linux License
LICENSE-LINUX.txt
macOS
MacOS 64-bit SO
libazul.dylib
MacOS 64-bit .a
libazul.macos.a
Python Extension (macOS)
azul.so
MacOS License
LICENSE-MACOS.txt
Additional architectures
Windows
Windows 32-bit DLL (for 32-bit Windows 7 and later)
azul.i686.dll
Windows 32-bit import library (for 32-bit Windows 7 and later)
azul.i686.lib
Windows 32-bit DLL (for legacy Windows 95/98/2000/XP)
azul.rust9x.dll
Windows 32-bit import library (for legacy Windows 95/98/2000/XP)
azul.rust9x.lib
macOS
Linux
Linux 32-bit x86 .so
libazul.linux-i686.so
Linux 32-bit x86 .a
libazul.linux-i686.a
Linux ARM64 .so
libazul.linux-aarch64.so
Linux ARM64 .a
libazul.linux-aarch64.a
Linux ARMv7 .so (Raspberry Pi)
libazul.linux-armv7.so
Linux ARMv7 .a (Raspberry Pi)
libazul.linux-armv7.a
Linux PowerPC64 .so (big-endian)
libazul.linux-ppc64.so
Linux PowerPC64 .a (big-endian)
libazul.linux-ppc64.a
Linux s390x .so (IBM Z, big-endian)
libazul.linux-s390x.so
Linux s390x .a (IBM Z, big-endian)
libazul.linux-s390x.a
Linux RISC-V 64 .so
libazul.linux-riscv64.so
Linux RISC-V 64 .a
libazul.linux-riscv64.a
Debug libraries
For debugging desktop applications, see the Debugging guide.
Debug library (Linux)
libazuldbg.so
Debug library (macOS)
libazuldbg.dylib
Debug library (Windows)
azuldbg.dll
Mobile (iOS & Android): drop-in libraries
For shipping on mobile, see the mobile deploy guide.
Android arm64-v8a
libazul-android-arm64.a.tar.gz
Android x86_64 (emulator)
libazul-android-x64.a.tar.gz
iOS arm64 (device)
libazul-ios-arm64.a.tar.gz
iOS arm64 (simulator)
libazul-ios-sim-arm64.a.tar.gz
C / C++ headers
C Header
azul.h
C++03 Header
azul03.hpp
C++11 Header
azul11.hpp
C++14 Header
azul14.hpp
C++17 Header
azul17.hpp
C++20 Header
azul20.hpp
C++23 Header
azul23.hpp
Linux packages
.deb (x86-64)
azul_0.2.0_amd64.deb
.deb (ARM64)
azul_0.2.0_arm64.deb
.deb (PowerPC64)
azul_0.2.0_ppc64.deb
.deb (s390x)
azul_0.2.0_s390x.deb
.deb (RISC-V 64)
azul_0.2.0_riscv64.deb
.rpm (x86-64)
azul-0.2.0-1.x86_64.rpm
.rpm (ARM64)
azul-0.2.0-1.aarch64.rpm
.rpm (PowerPC64)
azul-0.2.0-1.ppc64.rpm
.rpm (s390x)
azul-0.2.0-1.s390x.rpm
.rpm (RISC-V 64)
azul-0.2.0-1.riscv64.rpm
apt (Debian / Ubuntu)
# option 1: self-hosted apt repository (amd64 + arm64; unsigned, hence [trusted=yes])
echo 'deb [trusted=yes] https://azul.rs/ui/apt stable main' | sudo tee /etc/apt/sources.list.d/azul.list
sudo apt update
sudo apt install azul
# option 2: install the .deb straight from the GitHub release
curl -LO https://github.com/fschutt/azul/releases/download/0.2.0/azul_0.2.0_amd64.deb
sudo apt install ./azul_0.2.0_amd64.deb
Homebrew (macOS)
# self-hosted tap: a bare git repo served from azul.rs (installs libazul.dylib + azul.h)
brew tap fschutt/azul https://azul.rs/ui/homebrew-azul.git
brew install fschutt/azul/azul
Demos
- Linux
- macOS
- Windows
- iOS device (.ipa, signed)
- iOS device (.app, sign-it-yourself)
- iOS Simulator (.app, unsigned)
- Android (.apk, sideload)
- Web (Docker, experimental)
- AzulPaint
docker build https://azul.rs/ui/release/0.2.0/azul-paint.Dockerfile -t azul-paint docker run -p 8080:8080 azul-paint - AzWidgets
docker build https://azul.rs/ui/release/0.2.0/azul-widgets.Dockerfile -t azul-widgets docker run -p 8080:8080 azul-widgets - AzulMaps
docker build https://azul.rs/ui/release/0.2.0/azul-maps.Dockerfile -t azul-maps docker run -p 8080:8080 azul-maps - AzulVault
docker build https://azul.rs/ui/release/0.2.0/azul-vault.Dockerfile -t azul-vault docker run -p 8080:8080 azul-vault - AzGamepad
docker build https://azul.rs/ui/release/0.2.0/azul-gamepad.Dockerfile -t azul-gamepad docker run -p 8080:8080 azul-gamepad - AzCamera
docker build https://azul.rs/ui/release/0.2.0/azul-camera-app.Dockerfile -t azul-camera-app docker run -p 8080:8080 azul-camera-app - AzScreenShare
docker build https://azul.rs/ui/release/0.2.0/azul-screenshare-app.Dockerfile -t azul-screenshare-app docker run -p 8080:8080 azul-screenshare-app - AzVideo
docker build https://azul.rs/ui/release/0.2.0/azul-video-app.Dockerfile -t azul-video-app docker run -p 8080:8080 azul-video-app - AzMeet
docker build https://azul.rs/ui/release/0.2.0/azul-meet.Dockerfile -t azul-meet docker run -p 8080:8080 azul-meet - AzSelfTest
docker build https://azul.rs/ui/release/0.2.0/azul-self-test.Dockerfile -t azul-self-test docker run -p 8080:8080 azul-self-test
- AzulPaint
macOS note: if macOS complains it cannot verify the developer, run sh unquarantine.sh <binary-name> (unquarantine.sh).
Building, installing and debugging these — and going from Rust to a final .apk / .ipa cross-platform — is covered in the Mobile guide.
Installation instructions
Rust
Install instructions + hello-world
Python
Install instructions + hello-world
C
Install instructions + hello-world
C++
Install instructions + hello-world
C# / .NET
Install instructions + hello-world
Java
Install instructions + hello-world
Kotlin
Install instructions + hello-world
Lua
Install instructions + hello-world
Ruby
Install instructions + hello-world
Node.js
Install instructions + hello-world
OCaml
Install instructions + hello-world
Azul is NOT published to PyPI, npm, RubyGems, NuGet, Maven Central or crates.io (same-named packages there are unrelated projects). Instead, azul.rs self-hosts its own distribution channels, regenerated from this exact release by CI (a channel whose package did not build in a given run is simply absent):
# macOS - Homebrew tap (self-hosted bare git repo, see above)
brew tap fschutt/azul https://azul.rs/ui/homebrew-azul.git
brew install fschutt/azul/azul
# Debian / Ubuntu - self-hosted apt repository (unsigned, hence [trusted=yes])
echo 'deb [trusted=yes] https://azul.rs/ui/apt stable main' | sudo tee /etc/apt/sources.list.d/azul.list
sudo apt update
sudo apt install azul
# Python - self-hosted PEP 503 index (NOT pypi.org); pip fetches https://azul.rs/ui/azul/
pip install azul --index-url https://azul.rs/ui
# Java / Kotlin - self-hosted maven2 repository
# repository https://azul.rs/ui/maven + dependency rs.azul:azul:0.2.0
# Node - install the npm tarball straight from its stable URL
npm install https://azul.rs/ui/npm/azul-0.2.0.tgz
# C# / Ruby - stable file URLs (use as a local NuGet feed / local gem install)
# https://azul.rs/ui/nuget/flatcontainer/azul/0.2.0/azul.0.2.0.nupkg
# https://azul.rs/ui/gems/gems/azul-0.2.0.gem
Every binding file is also served directly from this page:
# grab one binding file directly (no examples.zip needed):
curl -O https://azul.rs/ui/release/0.2.0/Azul.cs
curl -O https://azul.rs/ui/release/0.2.0/Azul.hs
curl -LO https://azul.rs/ui/release/0.2.0/azul-java.zip
Use Azul as a Rust dependency
# Cargo.toml (azul is NOT on crates.io; the crate in the repo is azul-dll,
# renamed to `azul` for use)
[dependencies.azul]
package = "azul-dll"
git = "https://github.com/fschutt/azul"
tag = "0.2.0"
# Dynamic linking against a prebuilt azul.dll / libazul.so:
# features = ["link-dynamic"], default-features = false
# export AZ_LINK_PATH=/path/to/libazul
Docs & guide
API documentation
API documentation for this release
Online guide
Tutorials and how-tos
Full guide + API reference (PDF)
guide.pdf
API Description
api.json
Examples
examples.zip
Agentic
AI agent skill (skill.md)
install once to prime a coding agent
llms.txt
compact API + guide index for LLMs
llms-full.txt
full machine-readable index
Deploy a web app (pre-lifted WASM base image: experimental preview)
Guide: deploying azul web apps
# prebuilt web base image (experimental; the web backend is not yet stable)
docker pull ghcr.io/fschutt/azul:0.2.0
Statistics
- Code coverage report (grcov HTML, generated by CI)
- Dependency justifications (why each crate is in the tree)
- Supply-chain audit (cargo-deny: advisories, bans, licenses, sources)
- Unsafe-code audit (cargo-geiger)
- Clippy lint summary
- Sanitizers (ASan / UBSan / TSan on the C examples)
- Language binding status board (Linux)
- Language binding status board (macOS)
- Language binding status board (Windows)
- Dependency tree (Linux)
- Dependency tree (macOS)
- Dependency tree (Windows)
License
Azul project license (MIT)
The Azul project itself is MIT-licensed
Bundled third-party licenses (Linux build)
LICENSE-LINUX.txt
Bundled third-party licenses (macOS build)
LICENSE-MACOS.txt
Bundled third-party licenses (Windows build)
LICENSE-WINDOWS.txt
Bundled third-party licenses (iOS build)
LICENSE-IOS.txt
Bundled third-party licenses (Android build)
LICENSE-ANDROID.txt