Visión general para desarrolladores

Primeros pasos

Si solo quieres saber cómo publicar en Hashiverse de forma programática — mediante un botón, Python o la línea de comandos — empieza aquí. Si en cambio quieres saber cómo se construyó Hashiverse, sigue leyendo.

Hashiverse es una red social P2P descentralizada y resistente a la criptografía post-cuántica. Las ambiciones descritas en la sección Visión se traducen directamente en decisiones técnicas que conviene comprender antes de zambullirse en el código. Esta sección cubre esas decisiones: por qué se tomaron, qué cuestan y dónde viven en el código fuente.

Estructura del repositorio

hashiverse/
├── hashiverse-rust/                   Workspace de Rust (nightly)
│   ├── hashiverse-lib/                Protocolo base — nativo + WASM
│   ├── hashiverse-server-lib/         Biblioteca de servidor (infra reutilizable)
│   ├── hashiverse-server/             Binario de servidor (envoltorio fino)
│   ├── hashiverse-client-wasm/        Wrapper WASM para navegador
│   └── hashiverse-integration-tests/  Pruebas de extremo a extremo
├── hashiverse-client-web/             SPA en TypeScript / React 19
└── www/                               Este sitio (Astro)

El diseño en dos capas

hashiverse-lib es el protocolo. Compila a código nativo (para el servidor) y a WebAssembly (para el cliente del navegador). Toda la criptografía, la lógica DHT, la codificación de publicaciones y la API del cliente viven aquí. Cualquier plataforma capaz de ejecutar WASM o Rust nativo puede ser un participante pleno en la red.

hashiverse-client-web es el cliente de navegador de referencia — una SPA en React 19 que carga el cliente WASM en un Web Worker, manteniendo el hilo principal libre. Habla con el módulo WASM mediante una interfaz de paso de mensajes; la lógica de protocolo que invoca es idéntica a la que se ejecuta nativamente en el servidor.

Cuatro módulos en hashiverse-lib

Por dónde empezar

Si eres nuevo en la base de código, los mejores puntos de entrada son:

Las secciones de esta guía para desarrolladores cubren cada una un área de diseño concreta. Cada sección remite a los archivos fuente relevantes para que puedas seguir las ideas directamente al código.