How d-biehl/robotframework-platynui works
PlatynUI automates native desktop applications: a Robot Framework suite or tool queries a unified UI tree, reads state, and performs input or window actions. The Python library is built on the native runtime, which evaluates XPath over provider-supplied UI nodes and delegates platform operations to OS integrations. The README documents the CLI, Inspector, optional Java support, and the project’s Wayland compositor as additional product capabilities. Some subsystem links below are README-documented; unsampled implementation details are not inferred.
Main entry points: runtime/mod.rs Automation runtime · node.rs UI node model · platform/mod.rs Platform contracts · lib.rs Linux platforms
Components 22
Automation APIs
- BareMetal keywords
src/PlatynUI/BareMetal/__init__.py - Context API
src/PlatynUI/core/context.py - Locators
src/PlatynUI/core/locator.py
UI Runtime
- Native bindings
packages/native/src/runtime.rs - Automation runtime
crates/runtime/src/runtime/mod.rs - XPath engine
crates/xpath/src/engine/evaluator/mod.rs - UI node model
crates/core/src/ui/node.rs - Platform contracts
crates/core/src/platform/mod.rs
UI Providers
- Accessibility providers
crates/provider-atspi/src/lib.rs - Windows UIA
crates/provider-windows-uia/src/provider.rs - Java agent provider
crates/provider-java/src/agent/backend.rs - Java Access Bridge
crates/provider-java-jab/src/client.rs - Java integration package
packages/provider-java/src/platynui_provider_java/__main__.py
Platform Services
- Linux platforms
crates/platform-linux/src/lib.rs - X11 services
crates/platform-linux-x11/src/window_manager.rs - Wayland services
crates/platform-linux-wayland/src/lib.rs - Windows services
crates/platform-windows/src/window_manager.rs
Exploration Tools
- CLI
crates/cli/src/commands/query.rs - Inspector
apps/inspector/src/model/tree_data.rs - Wayland compositor
apps/wayland-compositor/src/main.rs
Other components
- Robot suites
- Desktop applications
Connections 22
- Robot suites → BareMetal keywords: invokes keywords
README.md - BareMetal keywords → Native bindings: uses API
README.md - Context API → Locators: resolves queries
src/PlatynUI/core/context.py - Context API → Native bindings: delegates runtime
- Native bindings → Automation runtime: exposes runtime
- Automation runtime → XPath engine: evaluates queries
- Automation runtime → UI node model: uses UI nodes
- Automation runtime → Platform contracts: delegates actions
- Desktop applications → Accessibility providers: exposes UI tree
README.md - Accessibility providers → UI node model: supplies UI nodes
- Windows UIA → UI node model: supplies UI nodes
- Java agent provider → UI node model: supplies UI nodes
- Java agent provider → Java integration package: enabled by package
README.md - Java Access Bridge → UI node model: supplies UI nodes
- Platform contracts → Linux platforms: implemented by
- Platform contracts → Windows services: implemented by
- Linux platforms → X11 services: selects session
README.md - Linux platforms → Wayland services: selects session
README.md - CLI → Automation runtime: evaluates queries
crates/cli/src/commands/query.rs - Inspector → Automation runtime: browses UI tree
README.md - Inspector → XPath engine: tests queries
README.md - Wayland compositor → Wayland services: provides test desktop
README.md