gioser

tawasuyu/llimphi

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

Rust 229TOML 101Markdown 82Shell 24052 Sutichaykuna

⎇ c1b11b2c01d7623a4f346519b9d1ec435be30b95 shared/app-bus/README.md Markdown · 38 siq'ikuna · 1.5 KB Ñawpa willay ch'uya

feat: completar llimphi.git con el widget menubar + app-bus c1b11b2c0 · Sergio ·

1# app-bus — bus de eventos in-proc para apps Llimphi
2
3Bus de **publish/subscribe** tipado, síncrono y en memoria, para coordinar apps
4dentro del mismo proceso. Cubre tres familias de eventos transversales: **foco**
5(qué app/ventana lo tiene), **navegación** (abrir/cerrar/enfocar una app o ruta)
6y **notificaciones** efímeras.
7
8## Qué expone
9
10- `AppBus` — handle compartible (`Clone`, internamente `Arc<RwLock<…>>`).
11- `Event` — enum transversal: `FocusChanged` / `Navigate` / `CloseApp` / `Notify`.
12- `NotifyLevel` — `Info` / `Warn` / `Error`.
13- `Subscription` — guard RAII: al soltarlo se cancela la suscripción.
14- `publish(Event)` entrega de forma síncrona a todos los suscriptores; entrega
15  anidada si un callback publica desde su propio handler.
16
17## No-objetivos
18
19- No es un bus interproceso ni de red (eso es Akasha / app-channel).
20- No persiste eventos ni garantiza entrega tras reinicio.
21- No ordena por prioridad.
22
23## Estado (2026-05-31)
24
25### Hecho
26- Bus pub/sub completo: `publish`, `subscribe`, cancelación por guard RAII.
27- Enum `Event` con foco/navegación/cierre/notificaciones.
28- Consumido por `launcher-llimphi` (dispara navegación/lanzamiento).
29
30### Pendiente
31- Adaptador multiproceso (hoy estrictamente in-proc).
32- Entrega diferida / cola (hoy reentrancia anidada síncrona).
33- Filtrado por tipo de evento en `subscribe` (hoy el callback filtra).
34
35## Lugar en el repo
36
37`shared/app-bus` — canal in-proc de grano fino. El plano de control a más alto
38nivel es `shared/sandokan` (ver su SDD.md).

README.md

app-bus — bus de eventos in-proc para apps Llimphi

Bus de publish/subscribe tipado, síncrono y en memoria, para coordinar apps dentro del mismo proceso. Cubre tres familias de eventos transversales: foco (qué app/ventana lo tiene), navegación (abrir/cerrar/enfocar una app o ruta) y notificaciones efímeras.

Qué expone

No-objetivos

Estado (2026-05-31)

Hecho

Pendiente

Lugar en el repo

shared/app-bus — canal in-proc de grano fino. El plano de control a más alto nivel es shared/sandokan (ver su SDD.md).