#axum #salvo #web #rnx #rn

app rnx

Rust web development scaffolding, support salvo and axum

4 releases

0.0.4 Apr 7, 2025
0.0.3 Mar 31, 2025
0.0.2 Mar 15, 2025
0.0.1 Mar 15, 2025

#113 in Development tools

Download history 234/week @ 2025-03-12 46/week @ 2025-03-19 111/week @ 2025-03-26 132/week @ 2025-04-02 30/week @ 2025-04-09

329 downloads per month

MIT license

91KB
2.5K SLoC

Tera 2K SLoC Rust 607 SLoC // 0.1% comments

氡-Rn

crates.io MIT

[氡-Rn] Rust Web开发脚手架,支持 salvoaxum 框架,并同时支持创建「单应用」和「多应用」

安装

cargo install rnx

特点

  • ORM使用 sea-orm
  • Redis使用 redis-rs
  • 日志使用 tracing
  • 配置使用 config-rs
  • 命令行使用 clap
  • 异步运行时使用 tokio
  • 参数验证器使用 validator
  • 包含 Trace、认证、请求日志、Panic捕获 中间价
  • 简单好用的 API Result 统一输出方式

创建项目

Salvo

单应用
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

Axum

单应用
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 所在目录)

Salvo

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

Axum

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 😊

Dependencies

~8–16MB
~215K SLoC