
Ply is an engine for building apps in Rust that run on Linux, macOS, Windows, Android, iOS, and the web. One codebase, every platform. GPU-accelerated rendering, text editing, styling, accessibility, shaders, networking, sound and more, made easy and fast.
cargo install plyx
plyx init
ui.element().width(grow!()).height(grow!())
.background_color(0x262220)
.corner_radius(12.0)
.layout(|l| l.direction(TopToBottom).padding(24))
.children(|ui| {
ui.text("Hello, Ply!", |t| t.font_size(32).color(0xFFFFFF));
});
Everything is an element. Builder pattern, closure-based children, one import. Read the docs →
ply.set_debug_mode(true)render_to_texture, procedural vectorsui.hovered(), ui.pressed(), ui.focused() inline, callback events, ID-based queries| Platform | Build command |
|---|---|
| Desktop (Linux, macOS, Windows) | cargo build |
| Web (WASM) | plyx web |
| Android | plyx apk |
| iOS | plyx ios |
| Feature | What it adds |
|---|---|
a11y |
Screen reader support via AccessKit (default) |
text-styling |
Rich text with inline colors, animations, effects |
tinyvg |
TinyVG vector graphics |
built-in-shaders |
Pre-made shader effects (foil, glow, CRT, etc.) |
shader-build |
Shader compilation pipeline (SPIR-V Cross) |
net |
HTTP and WebSocket |
net-json |
JSON deserialization for network responses |
storage |
Cross-platform persistent file storage |
audio |
Sound playback (WAV, OGG) |
See the interactive examples on the website:
Zero-Clause BSD. Use it for anything. No attribution required.
$ claude mcp add ply-engine \
-- python -m otcore.mcp_server <graph>