axum-core-version-migration

Migrate Axum Rust codebases from version 0.7 to 0.8.

Updated May 20, 2026
One-click install
npx skills add https://github.com/Impertio-Studio/Axum-Claude-Skill-Package --skill axum-core-version-migration
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: axum-core-version-migration
Source: https://github.com/Impertio-Studio/Axum-Claude-Skill-Package/tree/main/skills/source/axum-core/axum-core-version-migration
Command: npx skills add https://github.com/Impertio-Studio/Axum-Claude-Skill-Package --skill axum-core-version-migration

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

It prevents Axum 0.7-to-0.8 upgrades from causing startup panics, compilation failures, and silent routing/extractor behavior changes.

Core Features & Use Cases

  • Panic-proof route migration: Converts 0.7 path syntax (/:id, /*rest) to 0.8 syntax (/{id}, /{*rest}) and explains the brace-escaping rules.
  • Extractor and trait correctness: Guides removal of #[async_trait] for custom extractors under Rust RPITIT expectations and covers the RPITIT-related compilation changes.
  • Behavior-preserving API replacements: Audits removed/moved APIs (e.g., axum::Server, RawBody, WebSocket close) and covers semantic differences like Option<Extractor> rejection vs swallow-all behavior.
  • Use cases: Modernizing legacy services, resolving “router panics at startup” after cargo updates, migrating WebSocket handlers, and auditing Option<Path<T>> / tuple Path arity issues.

Quick Start

Ask the AI to migrate your codebase from axum 0.7 to axum 0.8 using this skill, following the migration checklist and ensuring all route paths, extractors, WebSocket message types, and removed APIs are updated correctly.

Frequently Asked Questions about axum-core-version-migration

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
Why does my Axum router panic at startup after updating Cargo dependencies?

Your Axum router panics at startup because version 0.8 introduced breaking routing changes, requiring path syntax migration from /:id to /{id} to resolve the issue.

How do I migrate Axum extractors after removing #[async_trait] for version 0.8?

To migrate Axum extractors, remove #[async_trait] from custom implementations to align with Rust RPITIT expectations, resolving compilation failures and updating trait definitions for version 0.8.

What are the breaking changes in Axum 0.8 WebSocket message types and Option<Path<T>>?

Breaking changes in Axum 0.8 include WebSocket close message migrations and semantic differences for Option<Extractor> rejection versus swallow-all behavior, plus tuple Path arity issues.

How do I fix compilation failures for removed APIs like axum::Server during an Axum upgrade?

To fix compilation failures for removed APIs like axum::Server during an Axum upgrade, apply behavior-preserving API replacements and audit moved modules using a breaking-change matrix.

What is the correct syntax for Axum 0.8 path parameters and wildcard routes?

The correct syntax for Axum 0.8 path parameters uses braces, converting /:id to /{id} and /*rest to /{*rest}, while following specific brace-escaping rules to prevent routing panics.