tawasuyu

tawasuyu/llimphi

Sovereign retained-mode GPU UI framework in Rust (wgpu+vello+taffy+parley), Elm loop, 40+ widgets.

Rust 660Markdown 302TOML 157RON 312382 Definiciones

⎇ main llimphi-wasm-registry/descriptors/rest-template.ron RON · 45 líneas · 2.0 KB Historia crudo

chore: refresco desde el monorepo — 27 crates nuevos (anim, lottie, svg, mesh, image, layer, test, wire-view, widgets rag-sidebar/router/lazy-list/rive-button) y sync de los 95 existentes 93253cc22 · Sergio ·

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)