Code Explainers

Rust code explainers

rust
use axum::{
    extract::{Path, Query},
    http::Uri,
    response::{IntoResponse, Redirect},

Building HTTP redirect handlers in Axum

redirects extractors url-handling
Intermediate 7 steps
rust
use axum::{
    body::Body,
    extract::MatchedPath,
    http::{Request, StatusCode},

An admin route guard in Axum middleware

middleware authorization request-extensions
Intermediate 7 steps
rust
use std::collections::VecDeque;
 
pub struct RollingAverage {
    window: VecDeque<f64>,

A rolling average over a sliding window

sliding-window running-sum ring-buffer
Intermediate 6 steps
rust
use std::time::Duration;
 
#[derive(Debug, Clone)]
pub struct ServerConfig {

The builder pattern in Rust

builder-pattern ownership error-handling
Intermediate 8 steps
rust
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
enum State {
    Locked,
    Unlocked,

A turnstile state machine in Rust

state machine enums pattern matching
Intermediate 9 steps
rust
use std::time::Duration;
 
use axum::{
    extract::State,

Rate-limit errors as Axum responses

error-handling rate-limiting http-headers
Intermediate 6 steps
rust
use std::time::Instant;
 
use axum::{
    body::Body,

Prometheus request metrics in Axum

middleware observability prometheus
Intermediate 7 steps
rust
use axum::{
    async_trait,
    body::Bytes,
    extract::FromRequest,

A strict JSON extractor in Axum

extractors traits content-negotiation
Advanced 7 steps
rust
use axum::{
    async_trait,
    extract::{FromRequestParts, State},
    http::{request::Parts, StatusCode},

Idempotent payments with an Axum extractor

idempotency extractors shared-state
Intermediate 8 steps
rust
use std::time::Duration;
 
use axum::{
    extract::State,

Rate-limiting an expensive Axum route with tower

middleware concurrency-limiting shared-state
Intermediate 9 steps
rust
use axum::{
    extract::State,
    http::{header, HeaderMap, StatusCode},
    response::{IntoResponse, Response},

Conditional GET caching in Axum

http-caching conditional-requests extractors
Intermediate 7 steps
rust
use std::io::{BufRead, BufReader};
use std::process::{Command, Stdio};
 
#[derive(Debug)]

Parsing ps output into structs in Rust

subprocess parsing iterators
Intermediate 8 steps
rust
use axum::{
    routing::get,
    Json, Router,
};

Response compression in Axum with tower-http

middleware compression http
Intermediate 6 steps
rust
use std::collections::HashMap;
 
#[derive(Debug, Clone)]
struct Row {

Building a tree from flat parent-id rows in Rust

recursion hashmap tree-building
Intermediate 6 steps
rust
use axum::{extract::State, http::StatusCode, response::IntoResponse, Json};
use chrono::{Duration, Utc};
use serde::{Deserialize, Serialize};
use std::{collections::HashMap, sync::Arc};

Refresh token rotation in Axum

authentication token-rotation reuse-detection
Advanced 9 steps
rust
use std::fs;
use std::path::Path;
 
use regex::Regex;

Redacting emails in a file with Rust

regex file-io closures
Intermediate 6 steps
rust
use std::fs::{File, OpenOptions};
use std::io::{self, Write};
use std::path::Path;
 

A buffered log writer in Rust

buffering raii file-io
Intermediate 9 steps
rust
use axum::{
    extract::{FromRef, FromRequestParts},
    http::{request::Parts, StatusCode},
    response::{IntoResponse, Response},

A custom API-key extractor in Axum

authentication extractors trait-implementation
Advanced 8 steps