12 stable releases
Uses new Rust 2024
| new 5.9.0 | May 16, 2026 |
|---|---|
| 5.8.0 | May 16, 2026 |
| 5.1.2 | Apr 30, 2026 |
#783 in Filesystem
Used in 3 crates
130KB
2.5K
SLoC
Routing model for apimock.
Responsibilities
This crate owns everything declarative about how requests match rules:
RuleSet— an ordered collection of rules, plus optional prefix / default / guard metadata. Loaded from one TOML file.Rule— a singlewhen { … } respond { … }entry.Respond— the declarative description of a response (file / text / status). Does not build thehyper::Response— that'sapimock-server's job.Strategy— how multiple matching rules in a set are resolved. (First-match only, at present.)- Matching primitives: glob, JSONPath, URL-path normalization.
- Read-only views for GUI tooling:
RouteCatalogSnapshot,RuleSetView,RuleView,RespondView,RouteMatchView,RouteValidation.
What is deliberately not here
- HTTP response construction — a matched
Respondis interpreted byapimock-server. - File I/O for response bodies — also server-side.
- TOML parsing orchestration (which files to load, in which order) —
that's
apimock-config. This crate only parses an individual rule-set TOML file when asked.
Stability
The types in view are the stable surface a GUI can depend on.
The internal RuleSet struct and its methods can still churn as
apimock's rule language evolves — views act as the insulation layer.
Routing model for apimock.
Dependencies
~11–18MB
~238K SLoC