MetaRead
Reading client for the decentralized MetaMesh network — comics and manga, books, papers and scanned documents. The third client after MetaWatch (video) and MetaListen (audio), built the same way.
What's in the stack
Self-contained (mirrors packages/meta-read/dev/). It does not depend
on the standalone MetaCore app — it ships its own infra so it runs alongside
MetaGateway and the other Meta* apps with no collisions:
| container | role |
|---|---|
metaread-core |
identity keystore, User Data Layer op-log, ingested records |
metaread-search |
discovery — federated search, gateway fan-out, cover recovery |
metaread-share |
pure content transport — byte Range, bitswap, BitTorrent |
metaread-app |
the reader UI/back-end |
metaread |
AppShield/OIDC gate (plus metareadshare, metareadsearch for the peer chips) |
⚠ Host ports 4005 / 4006. MetaWatch already publishes 4003/4004. Two peers cannot share a host port; walk the pairs upward for further clients.
The reading model
The depth of the hierarchy is a property of the item, not of the app. A manga is work → volume → chapter, with several scanlations per chapter and a chooser between them. A Gutenberg novel is one work and one file — its page is the reader entry point, and no synthetic chapter 1 is invented to pad it.
Page decoding (CBZ, CBR, EPUB, PDF) happens in the browser. The server is a flat Range/206 byte proxy and never unpacks an archive on your behalf.
It needs a feeder
MetaRead holds no catalogue. An empty library is the honest state of a mesh nobody has fed, not a fault. Install alongside MetaGateway plus:
- MetaFeeder · Suwayomi (+ MetaFeeder · AniList) — for comics and manga
- MetaFeeder · Gutenberg — Project Gutenberg (+ Open Library cards), for public-domain books
and register each feeder in the gateway's config. Gateway feeder discovery is startup-only.