sqlx
tokio
sqlx | tokio | |
---|---|---|
151 | 221 | |
14,887 | 28,721 | |
2.0% | 1.0% | |
9.2 | 9.5 | |
8 days ago | 8 days ago | |
Rust | Rust | |
Apache License 2.0 | 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.
sqlx
-
You Probably Don't Need Query Builders
Because type correctness does not imply branch correctness. SQL has side effects of interpretation, and any string/query builder that is not aware of grammatical implications should be avoided in my opinion.
Check the query builder of sqlx [1]
[1] https://github.com/launchbadge/sqlx/blob/main/sqlx-core/src/...
-
Serverless semantic search - AWS Lambda, AWS Bedrock, Neon
For DB schema and migrations, I use sqlx-cli.
-
First Impressions of AWS DSQL with Lambda and Rust
I tend to default to as few as possible, which is why when working with SQL and Rust, I almost always reach for SQLx. Setting up SQLx with AWS DSQL requires using the v4 Signature signing of my credentials as fetched from my AWS configuration. I do this work in my main function so that I can reuse the Postgres Pool in my handler without having to establish this connection outside of the Cold Start initializing cycle. That setup is reflected in the below code.
-
Sqlc: Compile SQL to type-safe code
This looks like a less ergonomic version of Rust's SQLx (https://github.com/launchbadge/sqlx) but a more robust version of TypeScript's sqlx-ts (https://jasonshin.github.io/sqlx-ts/). Sqlc seems to copy the latter's unfortunate lack of inline SQL statements. Still, seems promising.
-
Build your own SQLite with Rust, Part 1
SQLx seems to do some form of this. though what you're suggesting may remove the build time dependency on "connecting" to a SQLite database.
"SQLx supports compile-time checked queries. It does not, however, do this by providing a Rust API or DSL (domain-specific language) for building queries. Instead, it provides macros that take regular SQL as input and ensure that it is valid for your database. The way this works is that SQLx connects to your development DB at compile time to have the database itself verify (and return some info on) your SQL queries."
https://github.com/launchbadge/sqlx
- SQLx: Async, pure Rust SQL crate, compile-time checked queries without a DSL
-
A tale of TimescaleDB, SQLx and testing in Rust
For PostgreSQL, the most relevent part of the code is here. With this in mind I changed some things around to rely on schemas instead of databases and even simplified some parts of the implementation as this was always meant to be for internal use only..
-
Rust as a general application language
What exactly are you missing? I haven't really written "boring corporate backend stuff" in a few years but something like sqlx provides everything I've ever needed there.
-
Hey Rustaceans! Got a question? Ask here (49/2023)!
Badges are the little rectangles you typically see at the top of a crate's README: https://github.com/launchbadge/sqlx/blob/main/README.md
-
A new F# compiler feature: graph-based type-checking
SQLX has entered the chat [1].
[1] https://github.com/launchbadge/sqlx
tokio
-
A Journey From JS To Rust
Currently, the de facto standard async runtime is tokio. Beginners can just use tokio without much thought.
-
Exploring the top Rust web frameworks
Gotham is a flexible web framework built for stable Rust that promotes “stability, safety, security, and speed.” It provides async support with the help of Tokio and hyper out of the box.
-
Building a simple Kubernetes Controller in Rust - Part 1
Because of the nature of Kubernetes and its operation being "network operations", kube-rs considers all the operations as "async" operations, and we need a way to manage it. The well-known and mostly used way of doing it is with the tokio framework. Adding tokio, with features of "macros" (to use macros like #[tokio::main]) and a runtime (rt-multi-thread) should be enough. Additionally, we need to return an error to this function, so we will be using anyhow crate, that allows us to return errors without worrying about the error type
- Why I'm Writing a Scheme Implementation in 2025 (The Answer Is Async Rust)
-
The Inevitability of the Borrow Checker
The situation in Rust seems to be pretty complicated. But I did find that panicking within a thread you spawn kills just that thread and not the whole program. And it seems that Tokio has the same behavior.
https://github.com/tokio-rs/tokio/issues/2002
And web frameworks like Tower provide standard ways of Helen’ handling panics and turning them into error responses.
https://docs.rs/tower-http/latest/tower_http/catch_panic/ind...
So I don’t think panics are necessarily meant to be program-killing in Rust, even if Result types are heavily recommended instead.
-
Zig; what I think after months of using it
There's compiler-level traits like `Iterator` and `Future` which enforce references. If wanting to do intrusive pointers into them, one risks creating overlapping references: https://github.com/tokio-rs/tokio/issues/3399
- Build It Yourself
-
Rusty Backends
Full Tokio compatibility
-
Rust Implementation Guide - from efficient learning to implementation
[20] Tokio - An asynchronous Rust runtime
-
SSH port forwarding from within Rust code
We will be using tokio async framework and russh crates. Add them to your project:
What are some alternatives?
mysql-proxy-rs - A highly scalable MySQL Proxy framework written in Rust
smol - A small and fast async runtime for Rust
rds_iamauth_proxy - Postgres proxy which allows tools that don't natively supports IAM auth to connect to AWS RDS instances.
futures-rs - Zero-cost asynchronous programming in Rust
sea-orm - 🐚 An async & dynamic ORM for Rust
async-std - Async version of the Rust standard library