Module http

Source
Expand description

The one place this program reaches the network.

Behind the fetch feature, so that a build without it has no way to make a request at all — a property the compiler enforces rather than a promise a README makes.

It throttles requests, identifies the application, and returns bounded JSON or image bytes. Endpoint construction and response interpretation live in service modules such as crate::musicbrainz, which have no socket and can be tested without contacting a service.

Waiting its turn is not politeness, it is the contract. MusicBrainz allows one request per second per address and answers 503 to everything once that is exceeded — not just to the request that went over. A client without a throttle does not run slightly too fast; it stops working, and it does so for every other program on the same address.

Structs§

Client
A client that waits its turn and says who it is.

Enums§

Error
What can go wrong, kept apart because the answers differ.