All Readium implementations (mobile, desktop or Web) are split in two main modules, which use the Readium Web Publication Manifest to communicate together.
On the Web, the Publication Server is responsible for serving a Readium Web Publication Manifest and the resources of a publication over HTTPS.
In native apps, the Streamer is responsible for parsing packaged publications and exposing them using an in-memory model.
On all platforms, the Navigator is meant to navigate in the resources of a publication and can adopt very different strategy based on the nature of the publication (ebooks, audiobooks and comics).
These modules are not necessarily meant to be deployed on the same device or written in the same language, which lets developers select the best implementation based on their requirements.
The API of each module is specified via Readium Evolution Proposals, which are discussed collaborativelty before being implemented by the core developers of the toolkits.
Take a look at our dedicated awesome-readium repository to explore the ecosystem built around Readium.