Vue d'ensemble pour développeurs

Pour commencer

Si vous voulez simplement savoir comment publier sur Hashiverse de manière programmatique — par bouton, Python ou ligne de commande — commencez ici. Si vous souhaitez plutôt savoir comment Hashiverse a été construit, poursuivez la lecture.

Hashiverse est un réseau social P2P décentralisé et résistant à la cryptographie post-quantique. Les ambitions décrites dans la section Vision se traduisent directement en décisions techniques qu'il vaut la peine de comprendre avant de plonger dans le code. Cette section couvre ces décisions : pourquoi elles ont été prises, ce qu'elles coûtent, et où elles vivent dans le code source.

Organisation du dépôt

hashiverse/
├── hashiverse-rust/                   Workspace Rust (nightly)
│   ├── hashiverse-lib/                Protocole de base — natif + WASM
│   ├── hashiverse-server-lib/         Bibliothèque serveur (infra réutilisable)
│   ├── hashiverse-server/             Binaire serveur (fin emballage)
│   ├── hashiverse-client-wasm/        Wrapper WASM navigateur
│   └── hashiverse-integration-tests/  Tests bout-en-bout
├── hashiverse-client-web/             SPA TypeScript / React 19
└── www/                               Ce site (Astro)

La conception en deux couches

hashiverse-lib est le protocole. Il compile en code natif (pour le serveur) et en WebAssembly (pour le client navigateur). Toute la cryptographie, la logique DHT, le codage des publications et l'API client vivent ici. Toute plateforme capable d'exécuter du WASM ou du Rust natif peut être un participant à part entière du réseau.

hashiverse-client-web est le client navigateur de référence — une SPA React 19 qui charge le client WASM dans un Web Worker, gardant le thread principal libre. Elle parle au module WASM via une interface de passage de messages ; la logique de protocole qu'elle appelle est identique à celle qui tourne nativement sur le serveur.

Quatre modules dans hashiverse-lib

Par où commencer

Si vous découvrez la base de code, les meilleurs points d'entrée sont :

Les sections de ce guide développeur couvrent chacune un domaine de conception spécifique. Chacune renvoie aux fichiers source pertinents pour que vous puissiez suivre les idées directement dans le code.