#axum #web #derive #semweb

macro mattak_derives

derives for supporting mattak

3 unstable releases

new 0.2.0 Nov 7, 2025
0.1.1 Jul 16, 2025
0.1.0 Jul 9, 2025

#1513 in HTTP server

Custom license

285KB
7K SLoC

Mattak

This is a suite of tools meant to compliment Axum and support a semantic approach to web application development.

What's in a name

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.)

What's in the box

Mattak provides:

hypermedia

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.

biscuits

A wrapper around the biscuit-auth crate to provide a Layer to allow easy use of biscuits for authentication in Axum.

cachecontrol

A layer to add cache control headers to responses; you provide the TTL, and it works out the rest.

condreq

Etags and conditional requests, which can greatly optimize HTTP responses - there's no response faster than no response.

ratelimiting

A thin wrapper over the tower-governor crate, that makes it easy to set up rate limits.

routing

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.

The mattak_derives crate

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.

Dependencies

~52–71MB
~1M SLoC