Skip to content

Explanation

Background and reasoning. Nothing here is needed to use the crate; it is here so that the shape of the crate makes sense, and so that a surprising behaviour can be checked against an intention.

Page Answers
Why there are two backends Why a "unified" client drops down to raw HTTP for one vendor.
Why the endpoint is validated Why a configurable base URL is an attack surface, and what the three rules protect.
What rtb-chat does not do The unsupported combinations, the known defects, and the deliberate omissions.

Where the design reasoning lives now

rtb-chat was extracted from the rust-tool-base monorepo, where it was called rtb-ai, and its original contract was written as a numbered spec in that repository.

A spec is a point-in-time design record. It says what was decided on the day it was written, and it goes stale the moment the code moves on. These pages state the reasoning in their own words instead, and where the code and a historical spec disagree, the code is right.