# ============================================================================= # renaser :: format — el format del grafo de objetos en disco # ----------------------------------------------------------------------------- # Nucleo `#![no_std]` COMPARTIDO: lo enlaza el kernel bare-metal (target # `x86_64-unknown-none`) y, por ser no_std, tambien lo compila sin friccion el # anfitrion `boot`. Es la unica verdad del format del grafo —tipos, # (de)serializacion postcard, hash BLAKE3, trazado de registros—, de modo que # kernel y constructor de imagen hablen exactamente el mismo idioma de disco. # # Queda EXCLUIDO del espacio de trabajo (ver el Cargo.toml raiz), como el # kernel: lo consume un paquete bare-metal, asi que fija sus versiones de # forma explicita, sin herencia del workspace. # ============================================================================= [package] name = "format" version = "0.1.0" edition = "2021" license = "MPL-2.0" authors = ["JL Soltech "] description = "renaser :: format del grafo de objetos en disco — compartido kernel ↔ boot" [lib] bench = false doctest = false [dependencies] # `serde` da el rasgo de (de)serializacion; `postcard` lo materializa en un # format binario compacto — el que viaja al disco. Ambos `no_std`, sobre `alloc`. serde = { version = "1", default-features = false, features = ["alloc", "derive"] } postcard = { version = "1", default-features = false, features = ["alloc"] } # `serde-big-array` cubre el hueco de serde con arrays mayores a 32 bytes: las # firmas Ed25519 (`Firma = [u8; 64]`) lo requieren. Compatible `no_std`. serde-big-array = { version = "0.5", default-features = false } # `blake3`: la funcion hash que da identidad a cada objeto. Se fuerza la # implementacion ESCALAR pura (`pure` + los cuatro `no_*`): el target del kernel # corre sin SSE, y un camino SIMD por deteccion en tiempo de ejecucion # ejecutaria instrucciones que la CPU, sin `CR4.OSFXSR`, rechazaria con un #UD. blake3 = { version = "1", default-features = false, features = [ "pure", "no_sse2", "no_sse41", "no_avx2", "no_avx512", ] }