sqlx-rxqlite

Crates.iosqlx-rxqlite
lib.rssqlx-rxqlite
version0.1.17
sourcesrc
created_at2024-03-19 15:05:04.791152
updated_at2024-04-09 20:35:25.001863
descriptionrqlite driver implementation for SQLx. intended for use with sqlx; see the `sqlx` crate for details.
homepagehttps://github.com/HaHa421/sqlx-rxqlite
repository
max_upload_size
id1179340

documentation

README

SQLx rxqlite

The Rust SQL Toolkit rxqlite driver

Install | Usage | Security | License

Sqlx driver for rxqlite

Crates.io version [![CI](https://github.com/HaHa421/sqlx-rxqlite/actions/workflows/ci.yaml/badge.svg?branch=main)](https://github.com/HaHa421/sqlx-rxqlite/actions/workflows/ci.yaml)
## Install You need to have access to an rxqlite node. Instructions for installing rxqlite are available at https://github.com/HaHa421/rxqlite ## Usage A simple Cargo dependency would look like this : ```toml [dependencies] sqlx-rxqlite = { version = "0.1" } sqlx = { version = "0.7" , default-features = false, features = ["macros", "runtime-tokio", "tls-none"] } tokio = { version = "1", features = [ "full" ] } ``` Assuming an rxqlite node listens at "127.0.0.1:21001", a simple app would proceed as follows: ```rust use futures_util::StreamExt; use sqlx::prelude::*; use sqlx_rxqlite::RXQLitePoolOptions; //#[async_std::main] // Requires the `attributes` feature of `async-std` #[tokio::main] // or #[actix_web::main] async fn main() -> Result<(), sqlx::Error> { let pool = RXQLitePoolOptions::new() //.max_connections(5) .connect("rxqlite://localhost:21001") .await?; sqlx::query( "CREATE TABLE IF NOT EXISTS _sqlx_rxqlite_test_user_ ( id INTEGER PRIMARY KEY, name TEXT NOT NULL UNIQUE )", ) .execute(&pool) .await?; let mut row = sqlx::query("SELECT * FROM _sqlx_rxqlite_test_user_ WHERE name = ?") .bind("JohnDoe") .fetch_optional(&pool) .await?; if row.is_none() { sqlx::query("INSERT INTO _sqlx_rxqlite_test_user_ (name) VALUES (?);") .bind("JohnDoe") .execute(&pool) .await?; row = sqlx::query("SELECT * FROM _sqlx_rxqlite_test_user_ WHERE name = 'JohnDoe'") .fetch_optional(&pool) .await?; } assert!(row.is_some()); sqlx::query( "DROP TABLE _sqlx_rxqlite_test_user_", ) .execute(&pool) .await?; Ok(()) } ```
## Security rxqlite supports tls insecure connections (accepting any certificate, including self-signed certificates).
## License Licensed under either of - Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0) - MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT) at your option. ## Contribution Unless you explicitly state otherwise, any Contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be licensed as above, without any additional terms or conditions.
Commit count: 0

cargo fmt