cornucopia
azure-sdk-for-rust
cornucopia | azure-sdk-for-rust | |
---|---|---|
20 | 9 | |
723 | 661 | |
11.9% | 4.2% | |
4.2 | 9.3 | |
30 days ago | 2 days ago | |
Rust | Rust | |
GNU General Public License v3.0 or later | MIT License |
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?
azure-sdk-for-rust
-
What features would you consider missing/nice to haves for backend web development in Rust?
Take a look at this https://github.com/Azure/azure-sdk-for-rust
-
Should we switch to Rust?
Source: I'm an active contributor to the Azure SDK for Rust
- Mark Russinovich (Azure CTO): "it's time to halt starting any new projects in C/C++ and use Rust"
- `into_future` has been stabilized!
-
Experience 6 Months of Go
FWIW, AWS now have an official SDK for Rust in beta:
https://aws.amazon.com/sdk-for-rust/
There are people at Microsoft working on a Rust SDK for Azure, but it's explicitly a volunteer effort at the moment:
https://github.com/Azure/azure-sdk-for-rust
These days I probably would not look at any language that did not have SDKs for AWS and Azure, for similar reasons.
-
Help Microsoft shape the Azure SDK for Rust
Incidentally I have posted this today so if you believe in that feel free to put a thumb up there to voice support. I would be more than happy to extract the relevant parts of my code and contribute it there. https://github.com/Azure/azure-sdk-for-rust/issues/731
- Feedback on the unofficial rust SDK
- Has anyone built azure functions with Rust ? Functions with which you can say upload to a blob storage in azure ? Any GitHub repos / articles are appreciated!
-
What's everyone working on this week (9/2021)?
As for this week specifically, I'm trying to figure out the first bits of building a web service... aka authentication. Toying with Azure Active Directory right now, using the still-unofficial and incomplete Azure SDK for Rust. We'll see how that goes...
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.
mp4 - MP4 library, CLI tool, server
metrics
field_names - proc-macro for accessing struct field names at runtime
rbatis - Rust Compile Time ORM robustness,async, pure Rust Dynamic SQL
rustfuif - Performance & correctness oriented beursfuif implementation in rust
diesel_async - Diesel async connection implementation
profligate - Caesar cipher library with automatic letter-frequency decryption.
bb8 - Full-featured async (tokio-based) postgres connection pool (like r2d2)
objstor - object store
typed-session-axum - Typed-session as axum middleware
rust - Empowering everyone to build reliable and efficient software.