mirror of
https://github.com/launchbadge/sqlx
synced 2024-11-10 06:24:16 +00:00
Update README.md
This commit is contained in:
parent
daf7f6c556
commit
7d62d9a286
1 changed files with 51 additions and 2 deletions
53
README.md
53
README.md
|
@ -41,16 +41,63 @@
|
|||
|
||||
SQLx is a modern SQL client built from the ground up for Rust, in Rust.
|
||||
|
||||
* **Truly Asynchronous**. Built from the ground-up using [async-std] using async streams for maximum concurrency.
|
||||
* **Truly Asynchronous**. Built from the ground-up using async/await for maximum concurrency.
|
||||
|
||||
* **Type-safe SQL** (if you want it) without DSLs. Use the `query!()` macro to check your SQL and bind parameters at
|
||||
compile time. (You can still use dynamic SQL queries if you like.)
|
||||
|
||||
* **Pure Rust**. The Postgres and MySQL/MariaDB drivers are written in pure Rust using **zero** unsafe code.
|
||||
|
||||
* **Runtime Agnostic**. Works on [async-std](https://crates.io/crates/async-std) or [tokio](https://crates.io/crates/tokio) with the `runtime-async-std` or `runtime-tokio` cargo feature flag.
|
||||
|
||||
## Install
|
||||
|
||||
**async-std**
|
||||
|
||||
```toml
|
||||
# Cargo.toml
|
||||
[dependencies]
|
||||
sqlx = "0.2"
|
||||
```
|
||||
|
||||
**tokio**
|
||||
|
||||
```toml
|
||||
# Cargo.toml
|
||||
[dependencies]
|
||||
sqlx = { version = "0.2", no-default-features = true, features = [ "runtime-tokio", "macros" ] }
|
||||
```
|
||||
|
||||
#### Cargo Feature Flags
|
||||
|
||||
* `runtime-async-std` (on by default): Use the `async-std` runtime.
|
||||
|
||||
* `runtime-tokio`: Use the `tokio` runtime. Mutually exclusive with the `runtime-async-std` feature.
|
||||
|
||||
* `postgres`: Add support for the Postgres database server.
|
||||
|
||||
* `mysql`: Add support for the MySQL (and MariaDB) database server.
|
||||
|
||||
* `uuid`: Add support for UUID (in Postgres).
|
||||
|
||||
* `chrono`: Add support for date and time types from `chrono`.
|
||||
|
||||
* `tls`: Add support for TLS connections.
|
||||
|
||||
[async-std]: https://github.com/async-rs/async-std
|
||||
## Examples
|
||||
|
||||
#### Connect
|
||||
|
||||
It is a very good idea to always create a connection pool at the beginning of your application
|
||||
and then share that.
|
||||
|
||||
```rust
|
||||
# Postgres
|
||||
let pool = sqlx::PgPool::new("postgres://localhost/database").await?;
|
||||
```
|
||||
|
||||
#### Dynamic
|
||||
|
||||
The `sqlx::query` function provides general-purpose prepared statement execution.
|
||||
The result is an implementation of the `Row` trait. Values can be efficiently accessed by index or name.
|
||||
|
||||
|
@ -63,6 +110,8 @@ let row = sqlx::query("SELECT is_active FROM users WHERE id = ?")
|
|||
let is_active: bool = row.get("is_active");
|
||||
```
|
||||
|
||||
#### Static
|
||||
|
||||
The `sqlx::query!` macro prepares the SQL query and interprets the result in order to constrain input types and
|
||||
infer output types. The result of `query!` is an anonymous struct (or named tuple).
|
||||
|
||||
|
|
Loading…
Reference in a new issue