Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
zackbrown authored Feb 7, 2024
1 parent 83f4e5b commit fb45183
Showing 1 changed file with 0 additions and 34 deletions.
34 changes: 0 additions & 34 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,40 +44,6 @@ This project is licensed under either of:

at your option.

---
# Pax’s Priorities

### Made for Shipping

**Native builds**: Pax compiles to pure machine-code native binaries for each target platform. Pax today includes native runtimes for macOS desktop, iOS mobile, and browsers via WebAssembly

**Tiny footprint**: <100KB network footprint for WASM builds, enabled by our [unique native compositor](https://docs.pax.dev/reference-native-rendering.html). For native builds we target a <1MB binary footprint.

**Top-tier performance:** 240fps on supporting hardware, achieved in early builds, will be an ongoing priority. GPU rendering [has been achieved](https://github.com/paxproject/pax/pull/76) but requires work for production-readiness (namely: WASM footprint reduction.)

**Accessibility:** Pax supports screen readers on each implemented platform, as well as search engine optimization (SEO) in browsers. This is enabled by compositing _native elements_ — for example, DOM nodes for the web and SwiftUI elements for macOS/iOS — with virtual canvas drawings, for specific primitives like text and form controls.

### Learnable & Powerful

**Inspired by JSX** — anyone who has used React should find Pax familiar. The syntax, from the XML base flavor through to curly-brace-wrapped expressions, was designed to echo React. Nonetheless, by compiling into machine code Pax maintains the power, low overhead, and extensibility of systems programming and the Rust ecosystem.

**Modular & composable** — All Pax components are built around Rust structs and exposed through Rust’s module system, for example across Rust crates. Pax’s standard library is exposed as components and everything is swappable and extensible.

**Creatively expressive** — Animations, mix & match UI elements with design elements, free-form positioning melded with responsive layouts

**Multiple programming languages** (future) — today we support only Rust for application logic, but plan to extend this to at least TypeScript/Javascript and likely C++, Go, Python, and .NET.

### Designable
Pax’s 100% declarative _user interface description language_ is readable & writable by machines as well as humans. The language is designed to encode the union of: `anything you might express in a Photoshop file` and `anything you might build in React.` This includes vector elements, responsive layouts, form controls, and custom, composable components.

Pax the language is just data — declarative markup and expressions. Turing-complete logic is handled by the accompanying source code (e.g. Rust), where Rust functions can be bound to Pax events, e.g. `<Button @submit=some_rust_function />`, and Pax expressions can refer to Rust struct data like `<Rectangle x={self.dynamic_x_value} />`

Further, Pax’s layout engine renders in “design tool coordinates,” the same coordinate space as a tool like Photoshop or Figma. You can imagine a visual tool statically opening a Pax codebase, performing visual edits, and persisting those edits as source code — all while offering a Figma-like (or Flash-like) creative experience.

We call this principle “designability.”[1]

Our team is building a commercial, collaborative visual designer for Pax, so people who don’t write code can build software hand-in-hand with those who do. [JOIN THE EARLY ACCESS LIST](https://jeaattwds6e.typeform.com/to/aDG3OH7k)


---

Expand Down

0 comments on commit fb45183

Please sign in to comment.