diesel
sqlx
Our great sponsors
diesel | sqlx | |
---|---|---|
64 | 124 | |
10,111 | 8,322 | |
2.8% | 6.3% | |
9.5 | 9.0 | |
7 days ago | 4 days ago | |
Rust | Rust | |
Apache License 2.0 | 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.
diesel
-
Why use Rust on the back end?
Please reach out on the diesel discussion forum[1] about the lacking dev experience. I'm happy to discuss these issues and potential solutions there.
-
How to create a web app in Rust with Rocket and Diesel
As is customary for most web frameworks, Rocket allows you to use object-relational mappers (ORMs) as a data access layer for your application. Rocket is ORM agnostic, which means you can use any Rust ORM of your choice to access your database in your Rocket application. In this article, we’ll use Diesel ORM as our ORM of choice as it’s one of the most popular Rust ORMs. At the time of writing, Diesel ORM supports PostgreSQL, MySQL, and SQLite databases.
-
Hey Rustaceans! Got a question? Ask here (10/2023)!
The Diesel getting started guide is explicitly written for using PostgreSQL as your database system. It is using some parts of SQL that are not supported by SQLite. You can follow the equivalent SQLite code by looking at this diesel example. In the concrete case that error is caused by the fact that only quite new SQLite versions support returning clauses. These support is behind an off-by-default feature flag and requires using an up to date SQLite version.
-
I wanna be a crab.
“watched prime yell about VIM for hours” lmao well done, this got me. A lot of the resources people have already suggested are great! One thing I like to do after going through the documentation for a language is trying to build something like a simple rest api to get a better feel. Rocket (https://rocket.rs) and actix web (https://actix.rs) are popular web frameworks and then for ORM diesel (https://diesel.rs).
-
Looking for Rust Project Ideas for Semester Project - Any Suggestions?
You should minimise the non-Rust parts though, don't get tied up in anything else or your scope will quickly outgrow a two month deadline. Use something like https://dummyjson.com/ as a foundation to skip the need to find/generate/build database + content, or use a combination of postgres/postgrest to get a quick API + database and use faker to fill it up quickly. That'd allow you to use something like SQLx or https://diesel.rs/ in the application.
-
Rust and its friendly crates: Don't miss out on them!
diesel
-
Ormlite: An ORM in Rust for developers that love SQL
Congratulations to the release. I know all of this is hard work. I would like to invite you to submit a ormlite implementation to the diesel benchmark collection. As soon as that's merged you will get regular reports here. The relevant code is here in the diesel repository.
-
Destructive move in C++2
Doing arbitrary syntax transformations in procedural macros is not powerful enough? Does C++ have something like serde or diesel?
-
State of Rust for web backends
I've been building a relatively small project with axum and diesel, and I'm pretty happy with it.
-
Using Rust at a startup: A cautionary tale
There's also Diesel and SeaORM for higher level interfaces.
sqlx
-
What are the advantages of using Rust to develop KV databases?
Perhaps Rust has some nice crates that will assist your development, but you're going to have to evaluate whether their design decisions meet the needs of your design, especially if you want to handle powerloss without data loss whilst maintaining high performance. Here's an example of where a create chose design over performance https://github.com/launchbadge/sqlx/issues/2007
-
Why use Rust on the backend? by Adam Chalmers
SQLx's query macros act like format macros, and the database is apparently smart enough to not treat bind parameters as part of the SQL.
-
Why use Rust on the back end?
> Doesn't it need to run introspection queries to check the table structures?
Yes, but it can also run in 'offline' mode where it builds against saved metadata [0]
0: https://github.com/launchbadge/sqlx/blob/main/sqlx-cli/READM...
-
Arbitrary code execution during compile time - rust
well it does have its usecases. e.g. https://github.com/launchbadge/sqlx
-
Things I learned after getting users
I felt the same way until I found sqlx (https://github.com/launchbadge/sqlx). The package lets you write sql in your app with compile-time checks. Was so much easier to get up and running than learning a new ORM.
If writing SQL directly, what process do you use to update your queries during schema changes? Do you rely on a test suite to catch errors then update queries by hand? Are you using compile-time checks through libraries like sqlx [1]?
-
Improving sqlx-related Compile Times
You probably know about this already but we've finally landed the change to one file per query in offline mode which should provide both performance and ergonomic improvements, especially when it comes to merging multiple Git branches that change queries.
-
Programming block?
What I really like about it (apart from being a really nicely designed language, that is very expressive, powerful, performant and one of the safest because of the strict typing/memory management), is that you can kind of focus on just programming, without all the hassles around setting up a project, thinking about building/deploying etc. as tooling is really awesome as well (rust-analyzer, cargo, crates.io etc.). Libraries are usually high-quality and innovative (which is IMHO not so true for a lot of different other languages, including the ones you mentioned). E.g. if you want to create a web-server/API you could try something like this (my current recommendation): https://github.com/tokio-rs/axum and https://github.com/launchbadge/sqlx for good integration of typed sql in Rust or if you want something higher level: https://github.com/SeaQL/sea-orm
-
Install a CLI in a project (not globally)
It doesn't allow you to install third-party binaries, but it allows you to make your own binaries runnable with something similar to npx. And, as sqlx-cli is also available as a library, you can make an xtask which just runs that.
What are some alternatives?
sea-orm - 🐚 An async & dynamic ORM for Rust
rustorm - an orm for rust
rbatis - Rust Compile Time ORM robustness,async, pure Rust Dynamic SQL
tokio - A runtime for writing reliable asynchronous applications with Rust. Provides I/O, networking, scheduling, timers, ...
r2d2 - A generic connection pool for Rust
rust-postgres - Native PostgreSQL driver for the Rust programming language
rusqlite-model - Model trait and derive implementation for rusqlite
tikv - Distributed transactional key-value database, originally created to complement TiDB
deuterium-orm - Fully typed SQL query builder for Rust [deprecated]
actix-web - Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust.