[package] name = "llimphi-jaula" # Metadatos explícitos y no heredados: este crate está EXCLUIDO del workspace # raíz, igual que `llimphi-wawa` y por el mismo motivo (ver el comentario en # `/Cargo.toml`). Un miembro excluido no puede heredar de `workspace.package`. version = "0.1.0" edition = "2021" license = "MIT OR Apache-2.0" authors = ["Sergio "] publish = false description = "llimphi-jaula — la cáscara del lado APP: corre el ciclo de Llimphi dentro de una jaula WASM y emite una `EscenaWire` en vez de rasterizar. Es el gemelo de `llimphi-wawa`, del otro lado de la frontera: aquélla recibe y ejecuta, ésta compone y manda. W4 de 03_ukupacha/wawa/PLAN-LLIMPHI.md." [dependencies] # El MISMO compositor que corre en Linux y en el kernel, en su tercer perfil: el # que graba hacia el cable. `render.rs` no sabe cuál de los tres es. llimphi-compositor = { path = "../llimphi-compositor", version = "0.1.0", default-features = false, features = ["wire"] } llimphi-layout = { path = "../llimphi-layout", version = "0.1.0" } llimphi-text = { path = "../llimphi-text", version = "0.1.0", default-features = false, features = ["wire"] } llimphi-wire-escena = { path = "../llimphi-wire-escena", version = "0.1.0", default-features = false } # El codec del cable. La petición de medida cruza serializada; la respuesta son # doce bytes crudos y no lo necesita. postcard = { version = "1", default-features = false, features = ["alloc"] } [features] # El perfil para el que este crate existe: dentro de una jaula, sin sistema. default = ["libm"] libm = ["llimphi-compositor/libm", "llimphi-text/libm", "llimphi-wire-escena/libm"] # Correr la jaula en el anfitrión, para tests: mismo código, con stdlib. std = ["llimphi-compositor/std", "llimphi-text/std", "llimphi-wire-escena/std"] [dev-dependencies] # El caño, para el ejemplo `huesped_demo` — el primer huésped de verdad. Cruza la # frontera de workspace por `path`, como el reproductor del otro lado: el cable no # enciende ningún backend, así que no dispara el `compile_error!` de excluyentes. llimphi-cable = { path = "../llimphi-cable", version = "0.1.0", default-features = false } # **El editor de verdad**, para el ejemplo `nada_enjaulado`. Con el backend de la # jaula y sin la feature `escritorio`: la misma lib que corre suelta en Linux, # compuesta hacia el cable en vez de hacia una ventana. nada = { path = "../../nada", default-features = false, features = ["treesitter", "wire", "std"] } llimphi-despacho = { path = "../llimphi-despacho", version = "0.1.0" } postcard = { version = "1", features = ["use-std"] } llimphi-text = { path = "../llimphi-text", version = "0.1.0", default-features = false, features = ["wire", "std"] } # **El explorador de verdad**, para el ejemplo `nahual_enjaulado`. Igual que # `nada`: la misma lib que corre suelta, sin la feature `escritorio` y con el # backend del cable. Va sin `terminal` ni `svg` —el terminal embebido trae wgpu # y el visor de vectores rinde contra el rasterizador— y sin `ffmpeg`, que sólo # suma un puente por subprocess que este ejemplo no ejercita. nahual-shell-llimphi = { path = "../../nahual/nahual-shell-llimphi", default-features = false, features = ["wire", "std"] } # La paleta, para armar el modelo del explorador. No enciende ningún backend. llimphi-theme = { path = "../llimphi-theme", version = "0.1.0" } # **La vidriera de agora**, para el ejemplo `vidriera_activa` (SDD-CARAS C6). # Cruza la frontera de workspace por `path` como `nada` y `nahual`, y por el # mismo motivo no molesta: no enciende ningún backend de llimphi — es cripto, # serde y nada más. agora-vidriera = { path = "../../../03_ukupacha/agora/agora-vidriera" } # Workspace propio, vacío. Sin esto cargo lo absorbería en el del repo —del que # está excluido— y la unificación de features encendería `vello` junto a `wire`, # que son backends excluyentes. Es exactamente la trampa que ya mordió con # `llimphi-wawa`; acá está anotada para no volver a pisarla. [workspace] # El huésped del explorador, que dejó de ser un `example` para poder # empaquetarse: un ejemplo no se instala en la máquina de nadie. members = ["nahual-jailed"] [[example]] name = "vidriera_activa" path = "examples/vidriera_activa.rs"