Build extremely fast user interfaces that run anywhere.
Write application logic in Rust (or TypeScript, coming soon) — declare your user interface in Pax's user interface description language.
Pax compiles into native desktop/mobile apps, WebAssembly-driven sites, and embeddable universal UI components.
- The Pax compiler and an implementation of the Pax user interface description language
- Native renderers + runtimes for iOS, macOS, and browsers/WebAssembly
- Layout and animation engine for responsive positioning and expressive user interactions
- Language bindings for supported programming languages: Rust is supported today; TypeScript is coming soon. If you want support for another host programming language, please file an issue.
- Pax's CLI for compiling and managing projects
- Pax's standard library of reusable UI components like
Text
,TextBox
, andButton
; vector drawing primitives likeRectangle
,Path
, andGroup
; responsive layouts viaStacker
, clipping viaFrame
, and scrolling viaScroller
. - Example projects
Currently Alpha and unstable, under active full-time development. Today, Pax compiles and runs for iOS, macOS, and Web. The Web target is our leading edge of development. Pax’s standard library includes components for drawing, layouts, and form controls.
Join our Discord to chat with our team.
We do not yet recommend building any production workloads with Pax. Targeting Beta in Q3 2024.
Embedded universal components have been proven in concept but adapters for React, Next, Vue, SwiftUI, etc. have not been built. If you are interested in a particular component adapter, please open an issue so that we can understand your use-case & prioritize accordingly.
- Set up your workstation: macOS | Linux | Windows
- Set up at least one build target: Building for Browsers/WASM | Building for native macOS | Building for native iOS
- Create a new project with
pax-cli create my-new-project
, or run the examples inside this repo (recommended while this project is in Alpha — see following re: examples)
To run the examples in this monorepo:
- Follow
Get started
instructions above - Clone this repo:
git clone https://github.com/paxengine/pax.git
- Within the repo, run an example:
cd examples/src/space-game && pax-cli run --target=web
. Update the path and target as needed. Current examples include:
examples/src/fireworks
— showcase of expressions, repeat, and user interactions. Try scrolling.examples/src/mouse-animation
— showcase of path animations and user interaction. Try moving your mouse vertically.examples/src/particles
- showcase of iterating over data and animations. Non-interactive, but try tweaking the parameters in the source code.examples/src/slot-particles
- showcase of the slot mechanism for component reuse; the particles in this system can be whatever the outer component passes in. Try tweaking the source code.examples/src/space-game
— showcase of interactions, custom application logic, and making a simple game.
Read the docs at https://docs.pax.dev/
© 2024 PaxCorp Inc. [contact@pax.dev].
This project is licensed under either of:
at your option.