Crates.io | clorinde |
lib.rs | clorinde |
version | |
source | src |
created_at | 2025-01-06 04:07:33.909974+00 |
updated_at | 2025-03-28 00:11:00.80641+00 |
description | Generate type-checked Rust from your PostgreSQL queries. |
homepage | https://github.com/halcyonnouveau/clorinde |
repository | https://github.com/halcyonnouveau/clorinde |
max_upload_size | |
id | 1505289 |
Cargo.toml error: | TOML parse error at line 18, column 1 | 18 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include` |
size | 0 |
Clorinde generates type-checked Rust interfaces from PostgreSQL queries, with an emphasis on compile-time safety and high performance. It is a fork of Cornucopia that enhances the original with an improved architecture and expanded capabilities.
rust-postgres
performanceInstall with:
cargo install clorinde
Write your PostgreSQL queries with annotations and named parameters:
-- queries/authors.sql
--! insert_author
INSERT INTO Author
(first_name, last_name, country)
VALUES
(:first_name, :last_name, :country);
--! authors
SELECT first_name, last_name, country FROM Author;
Generate the crate with clorinde
, then you can import it into your project after adding it to your Cargo.toml
:
clorinde = { path = "./clorinde" }
And use the generated crate in your code:
use clorinde::queries::authors::{authors, insert_author};
insert_author.bind(&client, "Agatha", "Christie", "England");
let all_authors = authors().bind(&client).all();
for author in all_authors {
println!("[{}] {}, {}",
author.country,
author.last_name.to_uppercase(),
author.first_name
)
}
For more examples go to the examples directory, or head over to the book to learn more.
This crate uses Rust 2021 edition, which requires at least version 1.62.1.
Licensed under either of
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.