ply-engine 1.1.0

The most powerful app engine made entirely in Rust
Documentation

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

What you get

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 →

Highlights

  • Layout engine: Flexbox-like sizing, padding, gaps, alignment, scrolling, floating elements
  • Text input: Cursor, selection, undo/redo, multiline, password mode, keyboard shortcuts
  • Rich text styling: Inline colors, wave, pulse, gradient, typewriter, fade, works in inputs too
  • Shaders: GLSL fragment shaders, built-in effects, SPIR-V build pipeline
  • Accessibility: AccessKit on desktop, JS bridge on web. Screen readers, keyboard nav, focus rings, tab order, live regions
  • Debug view: Chrome DevTools-style inspector. One line: ply.set_debug_mode(true)
  • Networking: HTTP + WebSocket, polling-based, never blocks the UI, works everywhere
  • Images & vectors: PNG, TinyVG vectors, render_to_texture, procedural vectors
  • Rotation: Visual (children included) and shape (vertex-level)
  • Sound: WAV/OGG playback, volume control, looping
  • Interactivity: ui.hovered(), ui.pressed(), ui.focused() inline, callback events, ID-based queries

Platforms

Platform Build command
Desktop (Linux, macOS, Windows) cargo build
Web (WASM) plyx web
Android plyx apk
iOS plyx ios

Feature flags

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)

Examples

See the interactive examples on the website:

  • Shader Playground (207 lines): live GLSL editor with code highlighting
  • Snake (295 lines)
  • Todo List (242 lines)

License

Zero-Clause BSD. Use it for anything. No attribution required.