SQLx – The Rust SQL Toolkit

https://news.ycombinator.com/rss Hits: 8
Summary

SQLx 🧰 The Rust SQL Toolkit SQLx is an async, pure Rust † SQL crate featuring compile-time checked queries without a DSL. † The SQLite driver uses the libsqlite3 C library as SQLite is an embedded database (the only way we could be pure Rust for SQLite is by porting all of SQLite to Rust). †† SQLx uses #![forbid(unsafe_code)] unless the sqlite feature is enabled. The SQLite driver directly invokes the SQLite3 API via libsqlite3-sys , which requires unsafe . Cross-platform. Being native Rust, SQLx will compile anywhere Rust is supported. Built-in connection pooling with sqlx::Pool . Row streaming. Data is read asynchronously from the database and decoded on demand. Automatic statement preparation and caching. When using the high-level query API ( sqlx::query ), statements are prepared and cached per connection. Simple (unprepared) query execution including fetching results into the same Row types used by the high-level API. Supports batch execution and returns results from all statements. Transport Layer Security (TLS) where supported (MySQL, MariaDB and PostgreSQL). Asynchronous notifications using LISTEN and NOTIFY for PostgreSQL. Nested transactions with support for save points. Any database driver for changing the database driver at runtime. An AnyPool connects to the driver indicated by the URL scheme. Install SQLx is compatible with the async-std , tokio , and actix runtimes; and, the native-tls and rustls TLS backends. When adding the dependency, you must choose a runtime feature that is runtime + tls . # Cargo.toml [ dependencies ] # PICK ONE OF THE FOLLOWING: # tokio (no TLS) sqlx = { version = " 0.8 " , features = [ " runtime-tokio " ] } # tokio + native-tls sqlx = { version = " 0.8 " , features = [ " runtime-tokio " , " tls-native-tls " ] } # tokio + rustls with ring and WebPKI CA certificates sqlx = { version = " 0.8 " , features = [ " runtime-tokio " , " tls-rustls-ring-webpki " ] } # tokio + rustls with ring and platform's native CA certificates sqlx = ...

First seen: 2025-07-28 20:34

Last seen: 2025-07-29 03:36