#web-api #actix-web #axum #salvo

app rnx

The Rust web development scaffold, support salvo and axum

16 releases (8 breaking)

Uses new Rust 2024

new 0.8.0 May 15, 2026
0.7.0 Feb 25, 2026
0.6.1 Jan 5, 2026
0.6.0 Oct 31, 2025
0.0.3 Mar 31, 2025

#284 in Web programming

MIT license

135KB
3.5K SLoC

Tera 3K SLoC Rust 506 SLoC // 0.2% comments

氡-Rn

crates.io MIT

[氡-Rn] Rust Web开发脚手架,支持 actix-webaxumsalvo 框架,并支持「单应用」和「多应用」模式

安装

cargo install rnx

特点

  • DB使用 sqlx
  • Redis使用 redis-rs
  • 日志使用 tracing
  • 配置使用 config-rs
  • 命令行使用 clap
  • 异步运行时使用 tokio
  • 参数验证器使用 validator
  • 支持 Prometheus Metrics 和 Request 中间件
  • 包含 TraceId、认证、请求日志、Panic捕获 中间件
  • 简单好用的 API Result 统一输出方式

创建项目

单应用

# actix-web
rnx new # 在当前目录初始化项目
rnx new --name demo # 创建demo项目

# axum
rnx new --axum # 在当前目录初始化项目
rnx new --name demo --axum # 创建demo项目

# salvo
rnx new --salvo # 在当前目录初始化项目
rnx new --name demo --salvo # 创建demo项目

.
├── Cargo.toml
├── Dockerfile
├── app/
│   ├── Cargo.toml
│   ├── config.toml
│   └── src/
│       ├── cmd/
│       ├── handler/
│       ├── middleware/
│       ├── router/
│       ├── service/
│       └── main.rs
├── infra/
│   ├── Cargo.toml
│   └── src/
│       ├── core/
│       ├── middleware/
│       ├── status/
│       ├── util/
│       └── lib.rs
└── repo/
    ├── Cargo.toml
    └── src/
        ├── dao/
        ├── schema/
        └── lib.rs

多应用

# actix-web
rnx new --app foo --app bar # 在当前目录初始化项目
rnx new --name demo --app foo --app bar # 创建demo项目

# axum
rnx new --app foo --app bar --axum # 在当前目录初始化项目
rnx new --name demo --app foo --app bar --axum # 创建demo项目

# salvo
rnx new --app foo --app bar --salvo # 在当前目录初始化项目
rnx new --name demo --app foo --app bar --salvo # 创建demo项目

.
├── Cargo.toml
├── Dockerfile.foo
├── Dockerfile.bar
├── app/
│   ├── foo/
│   │   ├── Cargo.toml
│   │   ├── config.toml
│   │   └── src/
│   │       ├── cmd/
│   │       ├── handler/
│   │       ├── middleware/
│   │       ├── router/
│   │       ├── service/
│   │       └── main.rs
│   └── bar/
│       ├── Cargo.toml
│       ├── config.toml
│       └── src/
│           ├── ...
│           └── main.rs
├── infra/
│   ├── Cargo.toml
│   └── src/
│       ├── core/
│       ├── middleware/
│       ├── status/
│       ├── util/
│       └── lib.rs
└── repo/
    ├── Cargo.toml
    └── src/
        ├── dao/
        ├── schema/
        └── lib.rs

创建应用

多应用项目适用,需在项目根目录执行(即:Cargo.toml 所在目录)

# actix-web
rnx app --name foo --name bar

# axum
rnx app --name foo --name bar --axum

# salvo
rnx app --name foo --name --salvo bar

.
├── Cargo.toml
├── Dockerfile.foo
├── Dockerfile.bar
├── app/
│   ├── foo/
│   │   ├── Cargo.toml
│   │   ├── config.toml
│   │   └── src/
│   │       ├── cmd/
│   │       ├── handler/
│   │       ├── middleware/
│   │       ├── router/
│   │       ├── service/
│   │       └── main.rs
│   └── bar/
│       ├── Cargo.toml
│       ├── config.toml
│       └── src/
│           ├── ...
│           └── main.rs
├── infra/
│   ├── Cargo.toml
│   └── src/
│       ├── ...
│       └── lib.rs
└── repo/
    ├── Cargo.toml
    └── src/
        ├── ...
        └── lib.rs

Enjoy 😊

Dependencies

~7–11MB
~205K SLoC