9 个版本

0.1.9 2023 年 8 月 10 日
0.1.8 2023 年 8 月 9 日
0.1.7 2023 年 7 月 29 日
0.1.6 2023 年 2 月 22 日

#306 in #automatic


2 crates 中使用

MIT 许可证

11KB
263

gotcha

提供一个特色网页框架

旨在

  • axum 的所有功能
  • 自动生成 Swagger API
  • 内置消息机制
  • 基于环境的配置系统,支持环境解析器 ${ANY_ENV_VAR} 和路径变量 ${app.database.name}yaac 提供支持
  • 日志系统
  • 可选 Prometheus 集成
  • 基于 sqlx 的魔法 ORM
  • 基于 cron 的任务系统

开始使用

将依赖项添加到 Cargo.toml

gotcha = {version = "0.1"}
tokio = {version = "1", features = ["macros", 'rt-multi-thread']}
serde = {version="1", features=["derive"]}
use serde::Deserialize;

use gotcha::{get, GotchaApp, GotchaConfigLoader, Responder, State};
use gotcha::axum::extract::FromRef;

pub(crate) async fn hello_world(_state: State<Config>) -> impl Responder {
    "hello world"
}

#[derive(Debug, Deserialize, Clone)]
pub(crate) struct Config {}

#[tokio::main]
async fn main() {
    let config: Config = GotchaConfigLoader::load(None);
    GotchaApp::new().get("/", hello_world)
        .data(config)
        .done()
        .serve("127.0.0.1", 8000).await
}

依赖项

~18–30MB
~522K SLoC