tawasuyu/llimphi
Sovereign retained-mode GPU UI framework in Rust (wgpu+vello+taffy+parley), Elm loop, 40+ widgets.
1// =============================================================================
2// PLANTILLA de registro REST público de apps WASM.
3//
4// Esto es un MOLDE, no un descriptor verificado contra un endpoint en vivo.
5// Describe cómo mapear el JSON de un registro REST (un índice de apps en
6// internet) a entradas de catálogo Tier 3 — sin escribir Rust, sólo ajustando
7// paths. Apuntalo a un registro real con `--instance https://...` y corregí
8// los `path`/`fields` al esquema concreto de esa API (mira una respuesta real
9// con `curl` y ajusta los dotted-paths).
10//
11// IMPORTANTE (alcance honesto): traer e ingerir un módulo NO garantiza que
12// corra como app Tier 3 — la mayoría del WASM público sigue otro ABI (WASI,
13// component-model, wasm-bindgen/DOM), no el `wasm_view → WireNode` del runner.
14// El pipeline de descubrimiento/descarga/hash es real; la ejecución como UI
15// Llimphi sólo aplica a módulos compilados contra `llimphi-wasm-app-sdk`.
16//
17// - `path` : endpoint de listado, relativo a `--instance`. `{query}` se
18// sustituye URL-encodeado.
19// - `query` : pares clave→valor del query string (admiten `{query}`).
20// - `list_path` : dónde vive el array en la respuesta ("" = la raíz es array).
21// - `fields` : dotted-path a cada campo dentro de un item del array.
22// `id`, `name`, `wasm_url` son obligatorios.
23// =============================================================================
24#![enable(implicit_some)]
25(
26 name: "registro-rest",
27 kind: "rest-generico",
28 default_instances: [
29 // Cambialo por la base real del registro al que apuntes.
30 "https://example.invalid",
31 ],
32 list: (
33 path: "/v1/apps",
34 query: [("q", "{query}"), ("limit", "50")],
35 list_path: "results",
36 fields: (
37 id: "slug",
38 name: "name",
39 wasm_url: "artifacts.wasm.url",
40 description: "description",
41 category: "category",
42 version: "version",
43 ),
44 ),
45)