Skip to content

RFC: Runtime-aware App executables - #507

Open
replghost wants to merge 3 commits into
mainfrom
rfc/runtime-aware-app-executables
Open

RFC: Runtime-aware App executables#507
replghost wants to merge 3 commits into
mainfrom
rfc/runtime-aware-app-executables

Conversation

@replghost

Copy link
Copy Markdown
Contributor

RFC: Runtime-aware App executables

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

  • Added docs/rfcs/runtime-aware-app-executables.md without a number; CI assigns one after merge
  • Filled Summary, Motivation, Detailed Design, Drawbacks, Alternatives, and Unresolved Questions
  • Added the rfc label
  • Updated Rust traits in rust/crates/truapi/ — not applicable: this RFC changes the Product Manifest Format rather than the TruAPI method surface

Motivation

App manifest v1 implicitly describes a web archive with an index.html entrypoint. 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-rfc workflow 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

@replghost
replghost requested review from a team August 26, 2026 01:39
@replghost replghost added the rfc label Aug 26, 2026
Comment thread docs/rfcs/runtime-aware-app-executables.md Outdated
Graphics is required. Device input and audio are optional and should be omitted
when unused.

The graphics profiles have the following roles:

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

for reference would be nice to know what host today, support what

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@replghost
replghost requested a review from pgherveou August 28, 2026 00:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants