There is no DreamWeave server in the middle. The DreamWeave network is every site that publishes the protocol: each describes its own projects, in documents any program can read, and nothing sits above them. AsHyAmS is one such program. It reads the sites it has been told about, remembers what they said, notices when they say something new, and writes all of that down as static files.
The network is the sites. AsHyAmS is one index of them, and anyone can run another.
If AsHyAmS disappears, nothing about any mod changes. Its page still describes it, its manifest still lists its releases, its archives still download and verify. A client that never heard of AsHyAmS installs it exactly as before. Somebody who wants the index back clones this repository and runs three commands.
That is the design. The rest of this manual explains the machinery.
The three layers#
Facts at the origin, observations in Git, files on any host
Each layer survives without the one below it. Sites work without the index; the index rebuilds without the site; the site is served without anything running.
-
source
Publisher sites
Each project's own site: dreamweave.json, one manifest per project, archives and mirrors. The only authority for identity and releases.
-
service
Crawler
cargo network refresh, every six hours in CI or by hand. Discovers, validates, compares digests, fetches only what changed.
-
cache
network-state branch
Last good manifests byte for byte, per-site and per-claim records, one file per change event. Git is the history.
-
service
Build
cargo network build, then zola build. A pure function of the state: no clock, no network.
-
result
Static site
Pages, catalog.json, events.json, search.json, the updates feed. Any static host, any mirror.
network/sources.toml
The reviewed list of sites to read. Changed by pull request.
network/curation.toml
This index's own decisions: acknowledged moves, featured projects. Labelled as the index's.
Clients
CHIMERA or anything else. Reads publisher sites directly; may use this index to find them.
How the pieces relate
- Publisher sites read on a schedule Crawler
- Crawler observations network-state branch
- network-state branch Build
- Build Static site
- network/sources.toml which sites Crawler
- network/curation.toml this index's decisions Build
- Clients manifests and archives Publisher sites
Publishers own facts: a project’s identity, its releases, what each release contains, where to download it. Only the project’s own site is authoritative for any of it.
This index owns observations: which sites it read and when, what each said, what changed between one read and the next, which reads failed and why. It keeps them in Git.
The static site is a rendering of those observations, rebuilt from scratch every time, served by anything that can serve files.
None of the three may quietly become another. The index never rewrites a publisher’s claim. The site never computes anything at request time, because nothing runs at request time.
What a release can be#
A release is one of three things, and the index shows each for what it is.
- Game data. An archive laid out for installation,
flat,bainorfomod, with its components, content files and runtime constraints. Most of the St4sh’s 31 projects are this. - A program. One archive per platform: Windows, macOS and Linux, and on their own artifacts, Android and handheld builds for PortMaster and muOS. It is unpacked where the user asks and never installed into a game. Greenmote, Morrobroom, S3LightFixes and dream-ini publish these.
- A crate. A Rust library’s release as crates.io serves it, with the checksum Cargo verifies. Nothing installs it; the index records it so the release has a history. dream-net, openmw-config, l3i and the other DreamWeave libraries publish these.
Every one of them carries its publisher’s SHA-256, labelled as the publisher’s.
What this is not#
- Not a registry. Nothing is allocated here. Project ids are chosen by their authors; this index can only report who publishes which.
- Not the only index. Anyone can run another one over the same sites, or different ones, with different curation. See Independent indexes.
- Not an installer. It shows dependencies, capabilities and install data. Choosing what to install and doing it is a client’s job: CHIMERA or anything else that reads the protocol.
- Not a download host. Every download link goes to the publisher’s own sources or its listed mirrors. Nothing is proxied, and nothing is counted.
- Not a trust authority. Being listed means this index reads a site. It does not mean anybody vouches for it. See Trust and curation.
Five sentences to keep in mind#
AsHyAmS is not a place mods live. It is a map of places mods live.
Publisher sites own facts. The index owns observations.
A failed crawl produces stale data, not a dead ecosystem.
Git is the operations database. Static files are the deployment.
If this index disappears, DreamWeave distribution continues.