- Crate SQL thuần Rust hoạt động theo kiểu bất đồng bộ (async), cho phép xác thực truy vấn SQL tại thời điểm biên dịch mà không cần DSL bằng macro Rust
- Không phải ORM! : Tối ưu cho các dự án muốn dùng trực tiếp SQL mà không cần ORM
- Hỗ trợ các cơ sở dữ liệu như PostgreSQL, MySQL, MariaDB, SQLite
- Có thể dễ dàng kiểm tra tại thời điểm biên dịch bằng cách chỉ định
DATABASE_URL trong tệp .env
- Triển khai Pure Rust (driver MySQL/MariaDB được viết 100% bằng Rust, SQLite tích hợp thư viện C), được thiết kế an toàn không dùng mã
unsafe, nên có độ tin cậy cao
- Tương thích với các runtime bất đồng bộ Rust phổ biến như Tokio, async-std, actix cùng nhiều backend TLS khác nhau, và có thể sử dụng độc lập với nền tảng
- Giấy phép kép MIT/Apache 2.0, cho phép ứng dụng rộng rãi trong các dự án mã nguồn mở và thương mại
Tính năng chính
- Connection pooling với
sqlx::Pool
- Streaming Row bất đồng bộ dữ liệu từ cơ sở dữ liệu
- Tự động chuẩn bị và lưu đệm truy vấn theo từng connection
- Có thể dễ dàng chạy cả truy vấn không chuẩn bị sẵn (không phải Prepared), kết quả vẫn được trả về dưới cùng kiểu Row
- Hỗ trợ kết nối mã hóa TLS trên các DB được hỗ trợ (MySQL, MariaDB, PostgreSQL)
- Hỗ trợ thông báo PostgreSQL bất đồng bộ:
LISTEN và NOTIFY
- Hỗ trợ giao dịch lồng nhau với savepoint (Savepoint)
- Hỗ trợ
AnyPool, cho phép thay thế driver DB một cách linh hoạt tại runtime
Chưa có bình luận nào.