Developer Overview
Hashiverse is a decentralized, post-quantum-resistant P2P social network. The ambitions described in the Lore section translate directly into technical decisions that are worth understanding before diving into the code. This section covers those decisions: why they were made, what they cost, and where they live in the source.
Repository layout
hashiverse/
├── hashiverse-rust/ Rust workspace (nightly)
│ ├── hashiverse-lib/ Core protocol — native + WASM
│ ├── hashiverse-server-lib/ Server library (reusable infra)
│ ├── hashiverse-server/ Server binary (thin wrapper)
│ ├── hashiverse-client-wasm/ Browser WASM wrapper
│ └── hashiverse-integration-tests/ End-to-end tests
├── hashiverse-client-web/ TypeScript / React 19 SPA
└── www/ This site (Astro) The two-layer design
hashiverse-lib is the protocol. It compiles to native code (for the server) and to WebAssembly (for the browser client). All cryptography, DHT logic, post encoding, and client API live here. Any platform that can run WASM or native Rust can be a full participant in the network.
hashiverse-client-web is the reference browser client — a React 19 SPA that loads the WASM client in a Web Worker, keeping the main thread free. It talks to the WASM module through a message-passing interface; the protocol logic it calls is identical to what runs natively on the server.
Four modules in hashiverse-lib
- transport/ — Abstract traits (
TransportFactory,TransportServer,TransportServerHandler) with two implementations: in-memory (for tests) and HTTP/TCP (for production). Swap transports without changing protocol logic. - protocol/ — RPC packet encoding/decoding with PoW and compression, peer structs, request/response types, post and bundle data structures.
- client/ —
HashiverseClientAPI, peer tracker, post bundle management, timeline with recursive bucket traversal, and pluggableClientStorage/KeyLockerManagertraits. - tools/ — Core types (
Hash,Id,Signature), cryptographic primitives, PoW,TimeProviderabstraction, and protocol config.
Where to start
If you're new to the codebase, the best entry points are:
-
hashiverse-lib/src/lib.rs— the module map. Four top-level modules, each clearly scoped. -
hashiverse-lib/src/client/mod.rs— the public client API. The surface area a developer building on the protocol interacts with. -
hashiverse-integration-tests/tests/— end-to-end tests that spin up real server topologies in memory and exercise the full protocol stack. Reading these is the fastest way to understand how the pieces fit together.
The sections in this developer guide each cover a specific design area. Each one points to the relevant source files so you can follow the ideas directly into the code.