cornucopia
prisma-client-rust
cornucopia | prisma-client-rust | |
---|---|---|
20 | 10 | |
724 | 1,707 | |
3.7% | - | |
4.2 | 7.8 | |
about 1 month ago | 19 days ago | |
Rust | Rust | |
GNU General Public License v3.0 or later | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
cornucopia
-
We built our customer data warehouse all on Postgres
There are multiple queries each separated by ; and on top of each query, there's a comment giving a name to the query (it's more like a header)
I think the only thing that would require specific support in postgres_lsp is using the :parameter_name syntax for prepared statements [1] (in vanilla Postgres would be something like $1 or $2, but in Cornucopia it is named to aid readability). But, if postgres_lsp is forgiging enough to not choke on that, then it seems completely fit for this use case.
[0] https://github.com/cornucopia-rs/cornucopia
[1] https://cornucopia-rs.netlify.app/book/writing_queries/writi...
-
Is ORM still an anti-pattern?
Some examples for anyone else reading:
https://github.com/kyleconroy/sqlc
https://github.com/cornucopia-rs/cornucopia
This is my preferred method of interacting with databases now.
Very flexible.
-
What ORM do you use?
I like Cornucopia. It’s a SQL-first approach, so I don’t have to worry about an ORM generating pathological queries. It’s also basically zero cost compared to directly using rust-postgres and supports both sync and async. I also like that my SQL queries end up separate from my Rust code, so it’s easy to update all the relevant queries when the schema changes.
-
What is the recommended way to implement session authorization?
Also, I moved away from SQLx due to slow compile times and now use https://github.com/cornucopia-rs/cornucopia
-
Oops, You Wrote a Database
While we're on the subject of ORM's I really like the https://github.com/cornucopia-rs/cornucopia way of doing things.
Basically write SQL in a file and code generate a function that runs the SQL for you and puts it into a struct (this one is for rust)
I think there's a library to do the same thing with typescript.
For me, the best way to talk to the database is with SQL and I don't have to learn an ORMs way of doing it.
-
Thoughts about switching from sqlx to tokio_postgres?
You can take a look at https://github.com/cornucopia-rs/cornucopia which is a thin codegen layer on top of tokio-postgres for ease of use.
-
Ormlite: An ORM in Rust for developers that love SQL
I think we have that https://github.com/cornucopia-rs/cornucopia
-
Ask HN: ORM or Native SQL?
The best solution I've ever seen is this Rust library https://github.com/cornucopia-rs/cornucopia
You write plain SQL for you schema (just a schema.sql is enough) and plain SQL functions for your queries. Then it generates Rust types and Rust functions from from that. If you don't use Rust, maybe there's a library like that for your favorite language.
Optionally, pair it with https://github.com/bikeshedder/tusker or https://github.com/blainehansen/postgres_migrator (both are based off https://github.com/djrobstep/migra) to generate migrations by diffing your schema.sql files, and https://github.com/rust-db/refinery to perform those migrations.
Now, if you have simple crud needs, you should probably use https://postgrest.org/en/stable/ and not an ORM. There are packages like https://www.npmjs.com/package/@supabase/postgrest-js (for JS / typescript) and probably for other languages too.
If you insist on an ORM, the best of the bunch is prisma https://www.prisma.io/ - outside of the typescript/javascript ecosystem it has ports for some other languages (with varying degrees of completion), the one I know about is the Rust one https://prisma.brendonovich.dev/introduction
- Anything like sqlc for Rust?
-
What features would you consider missing/nice to haves for backend web development in Rust?
Does Cornucopia satisfy this requirement?
prisma-client-rust
- Prisma Client Rust: ORM for type-safe database access
-
My first project with rust
I build simple rust axum api server with Prisma client rust. This is my something done with rust and I really enjoyed rust!
-
What ORM do you use?
Prisma Client Rust. If you come from the JS/TS world this fits right in. It's halfway between a full ORM and SQL(x), so I prefer it.
- Have you written a web backend in Rust? How was it?
-
What's the future of Rust in web development?
Wut, Prisma works with Rust?! Is this what you're referring to? : https://github.com/Brendonovich/prisma-client-rust
-
What is the status of sqlx?
There's Prisma Client Rust if you want a fully fledged ORM!
-
Prisma laying off 28% staff
Damn, I use Prisma, it's a good way to have a unified database schema for which you can generate code in any language you want. It was very useful for converting a TypeScript project to a Rust one, I use prisma-client-rust in particular.
https://github.com/Brendonovich/prisma-client-rust
-
Real World Rust Backend For Web APIs (GraphQL / REST)
I also come from the NodeJS world where I used Prisma as an ORM / query builder. Turns out since the schema is language agnostic, anyone can make clients for it for any language, including Rust. I made a simple example which combines Prisma Client Rust, Actix Web, and Async GraphQL together, fairly straightforward to make.
-
Reviews of the Diesel ORM, are there better alternatives?
I've been using prisma client rust instead of seaorm lately and have been very happy
- Prisma Client for Rust - autogenerated and fully type-safe
What are some alternatives?
sqlx - 🧰 The Rust SQL Toolkit. An async, pure Rust SQL crate featuring compile-time checked queries without a DSL. Supports PostgreSQL, MySQL, and SQLite.
tauri - Build smaller, faster, and more secure desktop applications with a web frontend.
metrics
diesel - A safe, extensible ORM and Query Builder for Rust
rbatis - Rust Compile Time ORM robustness,async, pure Rust Dynamic SQL
ormlite - An ORM in Rust for developers that love SQL.
diesel_async - Diesel async connection implementation
bb8 - Full-featured async (tokio-based) postgres connection pool (like r2d2)
typed-session-axum - Typed-session as axum middleware
alacritty - A cross-platform, OpenGL terminal emulator. [Moved to: https://github.com/alacritty/alacritty]