KO
|
EN
gitlite — search
Search
#typescript
#ai-agents
#ai
#dsh-plugin
#deepseek-harness
#open-source
#cli
#claude-code
#codex
#developer-tools
#react
#windows
rqlite-rs
★ 42
Open GitHub ↗
Async Rqlite client for Rust
Download README (.md)
Explore Similar Repositories
rqlite-jdbc
:
Java jdbc for rqlite, the lightweight distributed relational database
jepsen.rqlite
:
No description available.
redis_queued_locks
:
Distributed locks with "prioritized lock acquisition queue" capabilities based on the Redis Database. Provides flexible invocation flow, parametrized time limits, zombie locks elimination, instrumentation, logging, etc.
rqlite-dotnet
:
.NET client
rql
:
Code for "Reversal Q-Learning (RQL)" for Flow RL from Prior Data
// repository documentation
Was this content helpful?
★ 0
(0 ratings)
Select Rating:
★
★
★
★
★
Submit Feedback
Recent Feedback
×
Download README
Do you want to download the
README.md
file for
rqlite-rs
?
Download (.md)
# rqlite-rs [](https://github.com/tomvoet/rqlite-rs/actions/workflows/ci.yml) [](https://codecov.io/gh/tomvoet/rqlite-rs) [](https://crates.io/crates/rqlite-rs) [](https://docs.rs/rqlite-rs) [](https://raw.githubusercontent.com/tomvoet/rqlite-rs/main/LICENSE) [](https://crates.io/crates/rqlite-rs)  **rqlite-rs** is a Rust client for [rqlite](https://rqlite.io/), the distributed relational database built on SQLite, providing an async interface for seamless integration with Rust's async ecosystems. Utilizing [reqwest](https://crates.io/crates/reqwest) for efficient connection management, it offers a Rustic, high-level API for easy and efficient interaction with rqlite clusters. ## Features - **Asynchronous Interface**: Fully async, compatible with Tokio, async-std, and smol. - **Connection Pooling**: Efficient management of connections to the rqlite cluster. - **High-Level API**: Simplifies interactions with the rqlite API. - **Resilience**: Automatic failover to a secondary node on connectivity issues. - **Cluster Management**: Full control over the cluster with node query and management features. ## Installation Add to your `Cargo.toml`: ```diff [dependencies] ... + rqlite-rs = "0.6.2" ``` ## Quick Start Ensure you have a running rqlite cluster. Replace `localhost:4001` and `localhost:4002` with your node addresses: ```rust use rqlite_rs::prelude::*; #[derive(FromRow)] pub struct Table { name: String, } #[tokio::main] async fn main() -> anyhow::Result<()> { let client = RqliteClientBuilder::new() .known_host("localhost:4001") .build()?; let query = rqlite_rs::query!( "SELECT name FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%'" )?; let rows = client.fetch(query).await?; let tables = rows.into_typed::<Table>()?; for table in tables { println!("Table: {}", table.name); } Ok(()) } ``` ## Resilience **rqlite-rs** supports automatic failover to a different node in the cluster. This can be done using one of the provided fallback strategies (e.g., `Random`, `RoundRobin`, `Priority`). Furthermore you can also implement your own fallback strategy by implementing the `FallbackStrategy` trait. An example of this can be found in the [custom_fallback](https://github.com/tomvoet/rqlite-rs/blob/main/examples/custom-fallback.rs) example. ## Documentation For detailed API documentation and advanced usage, visit [rqlite-rs documentation](https://docs.rs/rqlite-rs/). ## Contributing Contributions are welcome! ## License **rqlite-rs** is licensed under either of - Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)) - MIT license ([LICENSE-MIT](LICENSE-MIT) or [http://opensource.org/licenses/MIT](http://opensource.org/licenses/MIT)) at your option.