#async-context #diesel #postgresql #pool #connection-manager #r2d2 #wrapper

helge

围绕r2d2::Pool和diesel ConnectionManager的轻量级封装,简化在异步环境中的使用

6个版本 (3个稳定版)

3.0.0 2023年9月1日
2.0.0 2022年8月29日
2.0.0-rc.12022年7月23日
2.0.0-rc.02022年5月12日
0.1.0 2021年11月19日

1644数据库接口

MIT 许可证

7KB
102 代码行

helge

Helge是围绕r2d2::Pool和diesel ConnectionManager的轻量级封装,为在异步环境中使用diesel postgres和r2d2提供了一种简单的方法。


示例


let helge = Helge::<diesel::PgConnection>::new("postgres://127.0.0.1/somedatabase")?;
helge.query(|conn| {
    diesel::insert_into(users::table)
        .values(&NewUser {
            name: String::from("Helge"),
        })
        .execute(conn)
}).await?;

许可证: MIT


lib.rs:

Helge是围绕r2d2::Pool和diesel ConnectionManager的轻量级封装,为在异步环境中使用diesel postgres和r2d2提供了一种简单的方法。


示例

use diesel::prelude::*;
use helge::{Error, Helge};

diesel::table! {
    users {
	    id -> Integer,
	    name -> Varchar,
    }
}

#[derive(Debug, Insertable)]
#[diesel(table_name = users)]
struct NewUser {
    name: String,
}


async fn query() -> Result<(), helge::Error> {
  let helge = Helge::<diesel::PgConnection>::new("postgres://127.0.0.1/somedatabase")
                           .expect("connecting Helge");
  helge.query(|conn| {
      diesel::insert_into(users::table)
          .values(&NewUser {
              name: String::from("Helge"),
          })
          .execute(conn)
  }).await;
  Ok(())
}

依赖项

~5–12MB
~130K SLoC