cornucopia-rs/cornucopia
cornucopia-rs/cornucopia has 1,169 GitHub stars and 77 forks. GitHot measured +1 in 7 days. Last checked 2026-11-10 01:33 UTC. Last push 2026-10-21.
Generate type-checked Rust from your PostgreSQL.
What you can do
- Type Safety - Catch SQL errors at compile time with powerful diagnostics.
- SQL-First - Write plain SQL queries, get generated Rust code. No ORMs or query builders, just the SQL you know and love.
- Fast - Performance close to hand-written rust-postgres code.
- Flexible - Works with sync/async code and connection pools.
측정된 스타 증가
- in 24h
- 업데이트 지연
- in 7 days
- +1
- in 15 days
- 업데이트 지연
- in 1 month
- 업데이트 지연
서로 겹치는 기간의 순증가량이며 일별 합계가 아닙니다. 측정값이 없으면 비워 둡니다. 스타는 관심도를 나타내며 품질을 보장하지 않습니다.
README.md
Original[!NOTE] Cornucopia 1.0 merged the Clorinde fork back into the original project, adopting its rewritten codegen, expanded capabilities, and accumulated fixes. Huge thanks to @beanpuppy and the Clorinde contributors for their work. If you are upgrading from Cornucopia
0.9.x, see the migration guide.
Cornucopia generates type-checked Rust interfaces from PostgreSQL queries, with an emphasis on compile-time safety and high performance. It works by preparing your queries against an actual database and then running an extensive validation suite on them. Rust code is then generated into a separate crate, which can be imported and used in your project.
The basic premise is thus to:
- Write your PostgreSQL queries.
- Use Cornucopia to generate a crate with type-safe interfaces to those queries.
- Import and use the generated code in your project.
You can learn more about Cornucopia by reading the book, or you can get a quickstart by looking at the examples.
Key Features
- Type Safety - Catch SQL errors at compile time with powerful diagnostics.
- SQL-First - Write plain SQL queries, get generated Rust code. No ORMs or query builders, just the SQL you know and love.
- Fast - Performance close to hand-written
rust-postgrescode. - Flexible - Works with sync/async code and connection pools.
- PostgreSQL Native - Full support for custom types, enums, and arrays. Leverage PostgreSQL's advanced features without compromise.
- Custom Types - Map database types to your own Rust structs.
Installation
Install with:
cargo install cornucopia
Quick Example
Write your PostgreSQL queries with annotations and named parameters:
-- queries/authors.sql
--! insert_author
INSERT INTO authors
(first_name, last_name, country)
VALUES
(:first_name, :last_name, :country);
--! authors
SELECT first_name, last_name, country FROM authors;
Generate the crate with cornucopia, then you can import it into your project after adding it to your Cargo.toml:
cornucopia = { path = "./cornucopia" }
And use the generated crate in your code:
use cornucopia::queries::authors::{authors, insert_author};
insert_author()
.bind(&mut client, &"Agatha", &"Christie", &"England")
.unwrap();
let all_authors = authors().bind(&mut client).all().unwrap();
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.
Prior Art
- sqlc (Go) - Generate type-safe code from SQL
- Kanel (TypeScript) - Generate TypeScript types from Postgres
- jOOQ (Java) - Generate typesafe SQL from your database schema
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
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.
관련 프로젝트 살펴보기
Asabeneh/30-Days-Of-Python
30 Days of Python 프로그래밍 챌린지는 Python 프로그래밍 언어를 30일 동안 배우기 위한 단계별 가이드입니다. 이 챌린지는 100일 이상 걸릴 수 있습니다. 자신의 속도에 맞춰 진행하세요. 다음 동영상도 도움이 될 수 있습니다: https://www.youtube.com/channel/UC7PNRuno1rzYPb1xLa4yktw
78,560 스타grafana/grafana
개방적이고 조합 가능한 옵저버빌리티 및 데이터 시각화 플랫폼입니다. Prometheus, Loki, Elasticsearch, InfluxDB, Postgres 등 여러 소스의 메트릭, 로그, 트레이스를 시각화합니다.
77,830 스타redis/redis
실시간 데이터 기반 애플리케이션을 구축하는 개발자에게 Redis는 가장 선호되고, 가장 빠르며, 기능이 가장 풍부한 캐시, 데이터 구조 서버이자 문서 및 벡터 쿼리 엔진입니다.
77,395 스타apache/superset
Apache Superset는 데이터 시각화 및 데이터 탐색 플랫폼입니다.
75,473 스타