| Crates.io | mattak_derives |
| lib.rs | mattak_derives |
| version | 0.1.1 |
| created_at | 2025-07-09 20:20:16.935825+00 |
| updated_at | 2025-07-16 18:04:55.56236+00 |
| description | derives for supporting mattak |
| homepage | https://github.com/nyarly/mattak |
| repository | https://github.com/nyarly/mattak |
| max_upload_size | |
| id | 1745433 |
| size | 28,166 |
This is a suite of tools meant to compliment Axum and support a semantic approach to web application development.
Apps written using Mattak can be referred to as "Axum-Mattak" applications. The thinking is that semantic web applications are "axiomatically" more correct (whatever that means.)
Mattak provides:
A module to describe API affordances, which encapsulate not only the resource locator, either as a simple URI or a URITemplate, but also the HTTP method to use, and an RDF type to hint about the meaning of the affordance.
A wrapper around the biscuit-auth crate to provide a Layer to allow easy use of biscuits for authentication in Axum.
A layer to add cache control headers to responses; you provide the TTL, and it works out the rest.
Etags and conditional requests, which can greatly optimize HTTP responses - there's no response faster than no response.
A thin wrapper over the tower-governor crate, that makes it easy to set up rate limits.
Bidirectional routing with URITemplates. Define routes with parameters and a template, and easily add them to Axum routes, as well as render them in responses as full affordances or mere URIs.
You'll find derive macros for RouteTemplates and Locators here,
which will let you define one struct per route,
and get all the routing goodness with a #[derive(...)] attribute.