# wordval
Wordval: A fast, simple, and productive Rust web framework - config-driven, plugin-extensible, batteries included.
## Quick Start
```rust
use wordval::prelude::*;
#[tokio::main]
async fn main() -> wordval::Result<()> {
App::from_config()? // load config/config.toml automatically
.get("/", || async { Res::ok("Hello, Wordval!") })
.parse_cli() // supports `--gen-config` to generate config file
.serve("8080")
.await
}
```
## Features
- **Config-driven**: Behavior determined by `config.toml` with multi-environment profiles
- **Routing macros**: `#[get]` / `#[post]` / `#[put]` / `#[delete]` attribute macros
- **Batteries included**: Session auth, DB CRUD, Cache, File storage, Template, Plugins
- **Safety by default**: Security headers, Nonce (replay protection), `#[idempotent]` idempotency, XSS protection
- **Extensible**: Plugin system, WebSocket, NATS queue, Actor, IoT acquisition, Foxglove streaming
## Crates
The framework is split into composable crates: `wordval-core`, `wordval-web`, `wordval-macros`,
`wordval-db`, `wordval-cache`, `wordval-config`, `wordval-utils`, `wordval-scheduler`,
`wordval-fs`, `wordval-ws`, `wordval-queue`, `wordval-nats`, `wordval-actor`,
`wordval-iot`, `wordval-foxglove`, `wordval-foxglove-protocol`, `wordval-agent`.
## Documentation
See [docs.rs/wordval](https://docs.rs/wordval) for full documentation.