vespera

Solid

Build APIs with Vespera - FastAPI-like DX for Rust/Axum. Covers route handlers, Schema derivation, and OpenAPI generation.

API & Backend 26 stars 4 forks Updated today

Install

View on GitHub

Quality Score: 73/100

Stars 20%
48
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
0
Description 5%
100

Skill Content

# Vespera Usage Guide Vespera = FastAPI DX for Rust. Zero-config OpenAPI 3.1 generation via compile-time macro scanning. ## Quick Start ```rust // 1. Main entry - vespera! macro handles everything let app = vespera!( openapi = "openapi.json", // writes file at compile time title = "My API", version = "1.0.0", docs_url = "/docs", // Swagger UI redoc_url = "/redoc" // ReDoc alternative ); // 2. Route handlers - MUST be pub async fn #[vespera::route(get, path = "/{id}", tags = ["users"])] pub async fn get_user(Path(id): Path<u32>) -> Json<User> { ... } // 3. Custom types - derive Schema for OpenAPI inclusion #[derive(Serialize, Deserialize, vespera::Schema)] pub struct User { id: u32, name: String } ``` --- ## Type Mapping Reference | Rust Type | OpenAPI Schema | Notes | |-----------|----------------|-------| | `String`, `&str` | `string` | | | `i8`-`i128`, `u8`-`u128` | `integer` | | | `f32`, `f64` | `number` | | | `bool` | `boolean` | | | `Vec<T>` | `array` + items | | | `BTreeSet<T>`, `HashSet<T>` | `array` + items + `uniqueItems: true` | Set types | | `Option<T>` | T (nullable context) | Parent marks as optional | | `HashMap<K,V>` | `object` + additionalProperties | | | `Uuid` | `string` + `format: uuid` | | | `Decimal` | `string` + `format: decimal` | | | `NaiveDate` | `string` + `format: date` | | | `NaiveTime` | `string` + `format: time` | | | `DateTime`, `DateTimeWithTimeZone` | `string` + `format: date-time` | | | `FieldData<Nam...

Details

Author
dev-five-git
Repository
dev-five-git/vespera
Created
6 months ago
Last Updated
today
Language
Rust
License
None

Integrates with

Similar Skills

Semantically similar based on skill content — not just same category