Open ModPhoenix opened 1 month ago
As a proposed starting point, there's an async_duckdb crate that does something similar for DuckDB. https://docs.rs/async-duckdb/latest/async_duckdb/
It makes sense to create a separate crate for this, and allow users to choose which API they prefer for their application.
One important limitation of embedded databases is related to concurrency. We are likely to have the same limitation as DuckDB when it comes to connection pools, where you can only open connection pools for READ_ONLY processes. See this page for the details (they point to a link on concurrency in the DuckDB docs, and we have a similar page on our docs). https://crates.io/crates/async-duckdb
API
Rust
Description
We propose enhancing the Rust client for Kuzu DB by implementing async/await support and adding a connection pool. These improvements would significantly enhance the developer experience (DX) and align Kuzu DB with modern Rust frameworks and practices.
Proposed Changes
Rationale
Async/Await Support
Implementing async/await support for the Rust client would bring several benefits:
Connection Pool
Adding a connection pool would:
Example Usage (Proposed)
Impact
This enhancement would make Kuzu DB more attractive for Rust developers working with modern async frameworks and patterns. It would improve the overall developer experience by providing a more idiomatic way of working with Kuzu DB in async Rust applications.
Additional Considerations
We believe these improvements would greatly benefit the Kuzu DB ecosystem and its users by aligning with modern Rust development practices.