kerkour.com
metrics
kerkour.com | metrics | |
---|---|---|
2 | 19 | |
456 | 70 | |
0.0% | - | |
4.5 | 9.7 | |
2 months ago | 3 days ago | |
Rust | ||
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.
kerkour.com
-
SQL and Rust
There are plenty: - diesel - famous example of what the Rust type system can get you beyond just "memory safety". My go-to choice for most projects. Having autocomplete for my database DSL is something I find it hard to go without. But it comes at a fairly high cost of confusing, generic-heavy code. - sqlx - also a very solid choice. You write SQL queries, which are optionally checked against a database instance at compile-time. A downside I've heard repeated a lot (by some fairly reputably figures) is that sqlx adds a fairly significant overhead to queries, and according to this issue is 7-70x slower than diesel. If the performance of your database is important to you, run some benchmarks and see if it's an issue - seaorm - a relatively new ORM, and I haven't used it much, but my initial impressions were that it was a little too "magic". Maybe it just reminded me too much of Spring Boot. I'm not sure. It's probably a totally fine library - postgres (or equivalent) - you can always just skip the ORM and use the database driver directly. Pretty nice for smaller projects, but totally viable for big projects too. Just a matter of personal preference
-
How to implement worker pools in Rust
As usual, you can find the code on GitHub: github.com/skerkour/kerkour.com (please don't forget to star the repo 🙏).
metrics
-
SQLx 0.7 released! Offline mode usability improvements, performance fixes and major upgrades across the board!
It's worth keeping an eye on Diesel's metrics suite (https://github.com/diesel-rs/metrics) as well; I found and fixed some suboptimal buffering that was affecting performance.
-
What's everyone working on this week (26/2023)?
See here for some numbers. The relevant code lives inside the diesel github repository. Please also keep in mind that these are just numbers and you should run those these on your own and also run tests with your actual work load.
-
Sqlx, diesel, orm or other sqlx query ?
Performance is worse than in comparable frameworks
-
Handle sessions and database requests
For the database part you might want to checkout a crate that's not based on sqlx as sqlx is known for providing non-optimal performance for the sqlite backend. rusqlite or diesel perform much better for this use case.
-
What ORM do you use?
No it will likely not be less performant. See these numbers for some benchmark results for numbers. (As always with benchmarks: Please don't trust my numbers. To be sure you need to do your own benchmarks with your own use-case)
-
Trying to learn by tutorials, for cannot find a single Actix/Diesel tutorial that actually compiles
See here for some benchmark results. The benchmarks itself are in the diesel repository. Otherwise I believe there are numbers in the techempower benchmarks as well, although that includes other factors .
-
Thoughts about switching from sqlx to tokio_postgres?
I'm developing a Rust web server backend in Axum that uses Postgres and performance will be pretty important since I plan to run it on one server for as long as possible. It seems like the postgres crate is about 2x faster than sqlx, and the postgres repository seems pretty active still.
-
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.
-
Rails developers write some Rust: a review of Axum 0.6
In that case you may be interested in the metrics for different database libraries. diesel is doing rather well at the moment. sqlx is in the middle of a large rewrite that should improve performance, so we'll see how it compares after that
-
Using Rust as my Backend
See here for some benchmark results for the diesel repository. Please keep in mind that as always with benchmarks, these numbers are not necessarily true for your usecase. Be sure to checkout at least the benchmark code and draw your own conclusions from there.
What are some alternatives?
shisho - Lightweight static analyzer for several programming languages
sea-orm - 🐚 An async & dynamic ORM for Rust
binserve - A fast production-ready static web server with TLS (HTTPS), routing, hot reloading, caching, templating, and security in a single-binary you can set up with zero code.
sea-query - 🔱 A dynamic SQL query builder for MySQL, Postgres and SQLite
sandwich - Sandwich is a multi-platform, multi-language, open-source library that provides a simple unified API for developers to use (multiple) cryptographic libraries in their applications.
sqlx - 🧰 The Rust SQL Toolkit. An async, pure Rust SQL crate featuring compile-time checked queries without a DSL. Supports PostgreSQL, MySQL, and SQLite.
tangram - Tangram makes it easy for programmers to train, deploy, and monitor machine learning models.
cornucopia - Generate type-checked Rust from your PostgreSQL.
myblog - Personal blog written in Rust, using salvo and sqlx
rust-postgis - postgis helper library.
hypercube - HyperCube is a revolutionary, high-performance decentralized computing platform. HyperCube has powerful computing capabilities to provide high-performance computing power and large-scale data storage support for VR, AR, Metaverse, Artificial Intelligence, Big Data, and Financial Applications.🛰
const-eval - home for proposals in and around compile-time function evaluation