[氡-Rn] Rust Web开发脚手架,支持 salvo
和 axum
框架,并同时支持创建「单应用」和「多应用」
cargo install rnx
- ORM使用 sea-orm
- Redis使用 redis-rs
- 日志使用 tracing
- 配置使用 config-rs
- 命令行使用 clap
- 异步运行时使用 tokio
- 参数验证器使用 validator
- 包含 Trace、认证、请求日志、Panic捕获 中间价
- 简单好用的 API Result 统一输出方式
rnx new # 在当前目录初始化项目
rnx new --name=demo # 创建demo项目
.
├── src
│ ├── app
│ │ ├── cmd
│ │ ├── hanlder
│ │ ├── middleware
│ │ ├── router
│ │ ├── service
│ │ └── main.rs
│ └── shared
│ ├── core
│ ├── middleware
│ ├── result
│ ├── util
│ └── lib.rs
├── Cargo.toml
├── Dockerfile
└── config.toml
rnx new --app=foo --app=bar # 在当前目录初始化项目
rnx new --name=demo --app=foo --app=bar # 创建demo项目
.
├── src
│ ├── app
│ │ ├── foo
│ │ │ ├── cmd
│ │ │ ├── handler
│ │ │ ├── middleware
│ │ │ ├── router
│ │ │ ├── service
│ │ │ └── main.rs
│ │ └── bar
│ │ ├── ...
│ │ └── main.rs
│ └── shared
│ ├── core
│ ├── middleware
│ ├── result
│ ├── util
│ └── lib.rs
├── Cargo.toml
├── foo.dockerfile
├── bar.dockerfile
├── foo_config.toml
└── bar_config.toml
rnx new --axum # 在当前目录初始化项目
rnx new --name=demo --axum # 创建demo项目
.
├── src
│ ├── app
│ │ ├── cmd
│ │ ├── hanlder
│ │ ├── middleware
│ │ ├── router
│ │ ├── service
│ │ └── main.rs
│ └── shared
│ ├── core
│ ├── middleware
│ ├── result
│ ├── util
│ └── lib.rs
├── Cargo.toml
├── Dockerfile
└── config.toml
rnx new --app=foo --app=bar --axum # 在当前目录初始化项目
rnx new --name=demo --app=foo --app=bar --axum # 创建demo项目
.
├── src
│ ├── app
│ │ ├── foo
│ │ │ ├── cmd
│ │ │ ├── handler
│ │ │ ├── middleware
│ │ │ ├── router
│ │ │ ├── service
│ │ │ └── main.rs
│ │ └── bar
│ │ ├── ...
│ │ └── main.rs
│ └── shared
│ ├── core
│ ├── middleware
│ ├── result
│ ├── util
│ └── lib.rs
├── Cargo.toml
├── foo.dockerfile
├── bar.dockerfile
├── foo_config.toml
└── bar_config.toml
多应用项目适用,需在项目根目录执行(即:
Cargo.toml
所在目录)
rnx app --name=foo --name=bar
.
├── src
│ ├── app
│ │ ├── foo
│ │ │ ├── cmd
│ │ │ ├── handler
│ │ │ ├── middleware
│ │ │ ├── router
│ │ │ ├── service
│ │ │ └── main.rs
│ │ └── bar
│ │ ├── ...
│ │ └── main.rs
│ └── shared
├── Cargo.toml
├── foo.dockerfile
├── bar.dockerfile
├── foo_config.toml
└── bar_config.toml
rnx app --name=foo --name=bar --axum
.
├── src
│ ├── app
│ │ ├── foo
│ │ │ ├── cmd
│ │ │ ├── handler
│ │ │ ├── middleware
│ │ │ ├── router
│ │ │ ├── service
│ │ │ └── main.rs
│ │ └── bar
│ │ ├── ...
│ │ └── main.rs
│ └── shared
├── Cargo.toml
├── foo.dockerfile
├── bar.dockerfile
├── foo_config.toml
└── bar_config.toml
Enjoy 😊