gioser

tawasuyu/brahman

Rust 326TOML 123JSON 14Markdown 114554 Definitions

⎇ main renaser/kernel/Cargo.toml TOML · 93 lines · 4.4 KB History raw

feat(renaser): Fase 20 — Akasha Over Ether (grafo distribuido) 42fee6fcb · sergio ·

1# =============================================================================
2#  renaser :: kernel — el corazon bare-metal que late en el espacio unico
3# -----------------------------------------------------------------------------
4#  Este paquete esta EXCLUIDO del espacio de trabajo (ver el Cargo.toml raiz):
5#  es codigo puramente bare-metal y solo se compila como dependencia de
6#  artefacto de `boot`, que le impone el target `x86_64-unknown-none`. Por eso
7#  fija sus versiones de forma explicita, sin herencia del workspace.
8# =============================================================================
9
10[package]
11name = "kernel"
12version = "0.1.0"
13edition = "2021"
14license = "MPL-2.0"
15authors = ["JL Soltech <gerencia@jlsoltech.com>"]
16description = "renaser :: kernel asincrono SASOS — entrada, framebuffer y reactor"
17
18# El kernel es un binario freestanding: sin arnes de pruebas ni de benchmarks.
19[[bin]]
20name = "kernel"
21path = "src/main.rs"
22test = false
23bench = false
24doctest = false
25
26# -----------------------------------------------------------------------------
27#  Perfiles. El kernel esta EXCLUIDO del workspace; los `[profile]` del raiz
28#  no le alcanzan, asi que se declaran aqui. En bare-metal, las verificaciones
29#  UB de la stdlib —`unchecked_mul::precondition_check`, etc.— inyectan un
30#  panico cuyo propio camino de propagacion suele escribir en regiones que el
31#  cargador no mapeo: un colapso DENTRO de la red de seguridad del colapso,
32#  imposible de diagnosticar. Desactivar `debug-assertions` y `overflow-checks`
33#  las saca del binario sin cambiar la semantica del codigo correcto.
34# -----------------------------------------------------------------------------
35[profile.dev]
36panic = "abort"
37debug-assertions = false
38overflow-checks = false
39
40[profile.release]
41panic = "abort"
42debug-assertions = false
43overflow-checks = false
44opt-level = "s"
45lto = true
46codegen-units = 1
47
48[dependencies]
49# --- Fase 1-2 :: arranque, framebuffer e interrupciones ---
50bootloader_api = "0.11"
51x86_64 = "0.15"
52embedded-graphics = "0.8"
53
54# --- Fase 3 :: heap dinamico, reactor asincrono y texto vectorial ---
55linked_list_allocator = "0.10"
56spin = "0.9"
57crossbeam-queue = { version = "0.3", default-features = false, features = ["alloc"] }
58futures-util = { version = "0.3", default-features = false, features = ["alloc"] }
59# `hashbrown` ACTIVA el modo `no_std` de fontdue; sin el recae en `std`.
60fontdue = { version = "0.9", default-features = false, features = ["hashbrown"] }
61
62# --- Fase 4 :: interprete WebAssembly del userspace aislado ---
63# `wasmi` bare-metal: sin `std`, sin `wat`, sin `simd` (el target no tiene SSE).
64wasmi = { version = "1.0", default-features = false, features = ["hash-collections"] }
65
66# --- Fase 6 :: drivers de hardware — el disco virtio-blk sobre el bus PCI ---
67# `virtio-drivers` bare-metal: el kernel implementa su `trait Hal` para el DMA.
68virtio-drivers = { version = "0.13", default-features = false, features = ["alloc"] }
69
70# --- Fase 6.1c / 7b :: el grafo de objetos direccionado por contenido ---
71# El formato del grafo —tipos, (de)serializacion postcard, hash BLAKE3, trazado
72# de registros del log— vive en la crate `formato`, un nucleo `no_std`
73# COMPARTIDO con `boot` (que lo usa para sembrar la imagen de disco). El kernel
74# ya no declara `serde`/`postcard`/`blake3` por su cuenta: los hereda —con las
75# mismas features, BLAKE3 escalar puro incluido— a traves de `formato`. Una
76# sola verdad del formato de disco, imposible de divergir entre los dos lados.
77formato = { path = "../formato" }
78
79# --- Fase 20 :: Akasha Over Ether ---
80# El protocolo nativo de red de renaser: mensajes `MensajeAkasha` serializados
81# con `postcard`, sobre Ethernet crudo. Mismo patron que `formato`: nucleo
82# `no_std` compartido, no miembro del workspace anfitrion. El kernel y boot lo
83# enlazan, y cualquier app o daemon que quiera hablar AoE en el futuro tomara
84# la misma crate — una sola verdad del protocolo.
85akasha = { path = "../akasha" }
86
87# --- Fase 8 (preparación) :: el compositor ---
88# `mirada-layout` es el motor de teselado del compositor de brahman —
89# geometría pura (rectángulos, foco, Z-order), `no_std`, sin smithay ni
90# Wayland. Vive en el monorepo brahman, en su PROPIO workspace; renaser
91# lo enlaza por `path` cruzando la frontera. La feature `serde` queda
92# APAGADA: el kernel computa el layout en memoria, no lo serializa.
93mirada-layout = { path = "../../crates/modules/mirada/mirada-layout" }