ormlite
cornucopia
ormlite | cornucopia | |
---|---|---|
5 | 20 | |
212 | 697 | |
- | 9.9% | |
7.9 | 4.6 | |
about 2 months ago | 9 days ago | |
Rust | Rust | |
MIT License | GNU General Public License v3.0 or later |
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.
ormlite
-
How to parse the AST of an entire crate?
The macros in my orm library ormlite do this. You might look there for inspiration.
-
Ormlite: An ORM in Rust for developers that love SQL
Check out the quickstart on Github to get started using it!
-
Reviews of the Diesel ORM, are there better alternatives?
It’s extremely young, but I created Ormlite (https://github.com/kurtbuilds/ormlite) because I wanted a lightweight ORM that doesn’t involve learning a custom DSL. Like seaorm, it builds on sqlx and is fully async.
-
I made a SSO as my first project in Rust
(Shameless Plug) It's in-development, but I'm working on an orm library called ormlite built on top of sqlx which offers query builder syntax, builder syntax for update & insert, async, while staying as close to possible to sql syntax (that is, avoid library "magic").
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?
What are some alternatives?
prisma-client-rust - Type-safe database access for Rust
sqlx - 🧰 The Rust SQL Toolkit. An async, pure Rust SQL crate featuring compile-time checked queries without a DSL. Supports PostgreSQL, MySQL, and SQLite.
sea-orm - 🐚 An async & dynamic ORM for Rust
metrics
bb8 - Full-featured async (tokio-based) postgres connection pool (like r2d2)
rbatis - Rust Compile Time ORM robustness,async, pure Rust Dynamic SQL
rauth - A simple SSO implementation in Rust
diesel_async - Diesel async connection implementation
diesel - A safe, extensible ORM and Query Builder for Rust
typed-session-axum - Typed-session as axum middleware