| Crates.io | welds |
| lib.rs | welds |
| version | 0.4.18 |
| created_at | 2023-04-13 01:03:53.698865+00 |
| updated_at | 2025-09-09 00:34:18.014449+00 |
| description | An async ORM for (postgres, mssql, mysql, sqlite) |
| homepage | |
| repository | https://github.com/weldsorm/welds |
| max_upload_size | |
| id | 837757 |
| size | 453,288 |
Under the hood welds uses:
Compatibility:
0.4.* line of welds is compiled with sqlx 0.80.3.* line of welds is compiled with sqlx 0.7#[derive(Debug, WeldsModel)]
#[welds(schema= "inventory", table = "products")]
#[welds(BelongsTo(seller, super::people::People, "seller_id"))]
pub struct Product {
#[welds(rename = "product_id")]
#[welds(primary_key)]
pub id: i32,
pub name: String,
pub seller_id: Option<i32>,
pub description: Option<String>,
pub price: Option<f32>,
}
let url = "postgres://postgres:password@localhost:5432";
let client = welds::connections::connect(url).await.unwrap();
let products = Product::where_col(|p| p.price.equal(3.50)).run(&client).await?;
let client = welds::connections::connect(url).await.unwrap();
let sellers = Product::where_col(|product| product.price.equal(3.50))
.map_query(|product| product.seller )
.where_col(|seller| seller.name.ilike("%Nessie%") )
.run(&client).await?;
let client = welds::connections::connect(url).await.unwrap();
let mut cookies = Product::new();
cookies.name = "cookies".to_owned();
// Creates the product cookie
cookies.save(&client).await?;
cookies.description = "Yum".to_owned();
// Updates the Cookies
cookies.save(&client).await?;
Both Tiberius and sqlx support types from external crates such at chrono and serde_json. These types need to be enabled in the underlying crate to use.
In order to use types that are external the appropriate feature needs to be enabled in these underlying frameworks.
We have chosen to leave this up to you as the developer so you have full control over your underlying SQLX/Tiberius setup.
In order to get these types to work you will need to:
cargo add chronocargo add sqlx --features=chronocargo add welds-connections --features=mssql,mssql-chronowelds-connections features needed for mssql (tiberius):
If you are looking for documentation on how to use welds, A good place to start is The Welds Book.
For more good examples check out the examples repo.