Skip to content

Latest commit

History

53 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

async-sqlite

A library to interact with sqlite from an async context.

This library is tested on both tokio and async_std, however it should be compatible with all async runtimes.

Install

Add async-sqlite to your "dependencies" in your Cargo.toml file.

This can be done by running the command:

cargo add async-sqlite

Usage

A Client represents a single background sqlite3 connection that can be called concurrently from any thread in your program.

To create a sqlite client and run a query:

use async_sqlite::{ClientBuilder,JournalMode};let client = ClientBuilder::new().path("/path/to/db.sqlite3").journal_mode(JournalMode::Wal).open().await?;let value:String = client.conn(|conn| {
conn.query_row("SELECT val FROM testing WHERE id=?",[1], |row| row.get(0))}).await?;println!("Value is: {value}");

A Pool represents a collection of background sqlite3 connections that can be called concurrently from any thread in your program.

To create a sqlite pool and run a query:

use async_sqlite::{JournalMode,PoolBuilder};let pool = PoolBuilder::new().path("/path/to/db.sqlite3").journal_mode(JournalMode::Wal).open().await?;let value:String = pool.conn(|conn| {
conn.query_row("SELECT val FROM testing WHERE id=?",[1], |row| row.get(0))}).await?;println!("Value is: {value}");

Cargo Features

This library tries to export almost all features that the underlying rusqlite library contains.

A notable difference is that the bundled feature is enabled by default, but can be disabled with the following line in your Cargo.toml:

async-sqlite = { version = "*", default-features = false }

About

A Rust library to interact with sqlite from an async context.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages