Skip to content
AgileLogics
Advanced 5 min read

Advanced Projects

Prerequisites: Level 3 — Advanced

Build these using async Rust, Axum, SQLx, and the testing and deployment practices from Level 3.

1. Task List REST API

Build a JSON REST API for a task list with Axum and SQLx (PostgreSQL), with typed errors mapped to HTTP status codes, request tracing, and graceful shutdown. Test the router with tower::ServiceExt::oneshot, run cargo clippy -- -D warnings in CI, and ship it as a multi-stage Docker image.

2. Async Web Crawler

Crawl a site starting from one URL using Tokio and reqwest, limiting concurrency with a tokio::sync::Semaphore, tracking visited URLs in a shared set, and cancelling everything after an overall timeout with tokio::time::timeout.

3. A Derive Macro for Your Own Trait

Write a small Describe trait and a #[derive(Describe)] procedural macro that generates an implementation listing a struct's field names and types. Publish-ready: separate -derive crate, documentation with examples that run as doc tests, and a trybuild test for a helpful compile error on enums.