RFC: Runtime-aware App executables - #507
Conversation
| Graphics is required. Device input and audio are optional and should be omitted | ||
| when unused. | ||
|
|
||
| The graphics profiles have the following roles: |
There was a problem hiding this comment.
for reference would be nice to know what host today, support what
There was a problem hiding this comment.
The v2 manifest is supported by Epoca 0.2.0 and later.
It can also be tried from the feat/pvm-wasm branch of dotli-community.
Reproducible App manifest v2 examples for the framebuffer, Tri2D, and WebGPU Raster profiles are available in paritytech/product-runtime-examples.
iOS and Android currently support web Apps and do not yet implement the PolkaVM runtime.
I have kept these references out of the RFC because they describe implementation status rather than the portable contract.
|
FYI this should be raised as an issue first to follow the new pipeline |
|
@filvecchiato Tracking issue is #550. I linked RFC #507 and implementation PR #540, added the |
RFC: Runtime-aware App executables
Tracking issue: #550
Summary
Introduces App executable manifest v2 with an explicit runtime. Web remains the mandatory App runtime; Products may additionally declare a PolkaVM runtime with versioned graphics, device-input, and audio requirements.
The proposal keeps App as the executable kind, treats PolkaVM as its runtime, and treats framebuffer, Tri2D, and WebGPU Raster as negotiated graphics profiles.
Checklist
docs/rfcs/runtime-aware-app-executables.mdwithout a number; CI assigns one after mergerfclabelrust/crates/truapi/— not applicable: this RFC changes the Product Manifest Format rather than the TruAPI method surfaceMotivation
App manifest v1 implicitly describes a web archive with an
index.htmlentrypoint. It cannot distinguish that archive from a sandboxed PolkaVM program or let a Host preflight the program's graphics and input requirements. Extending v1 would let older Hosts misinterpret PolkaVM bytes as web content, so the proposal adds a fail-closed v2 manifest.Interface changes
This is a manifest-format RFC and does not add or modify a TruAPI method. It therefore contains no changes under
rust/crates/truapi/.The current
validate-rfcworkflow assumes every RFC modifies that directory. The same check failed on the merged Product Manifest RFC (#206) and currently fails on the manifest-only Funding proposal (#458).Validation
git diff --check