1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
//! # sqlite-vtable-opendal
//!
//! Federated SQLite Virtual Tables for Cloud Object Stores using OpenDAL
//!
//! This library provides a lightweight way to query metadata from cloud object stores
//! (Dropbox, S3, Google Drive, HTTP) using SQL without ingesting the data.
//! It uses OpenDAL as the storage abstraction layer and SQLite's virtual table interface.
//!
//! ## Features
//!
//! - **Metadata-only queries**: Query file metadata without downloading content
//! - **5 storage backends**: Local FS, S3, Dropbox, Google Drive, HTTP
//! - **Standard SQL**: Use familiar SQL syntax for cloud storage queries
//! - **Pagination support**: Handle large directories efficiently with limit/offset
//! - **Zero data ingestion**: Query directly from storage without materialization
//! - **Async support**: Non-blocking operations via Tokio runtime
//!
//! ## Quick Start
//!
//! ```rust,no_run
//! use rusqlite::Connection;
//! use sqlite_vtable_opendal::backends::local_fs;
//!
//! # fn main() -> rusqlite::Result<()> {
//! let conn = Connection::open_in_memory()?;
//!
//! // Register virtual table for local filesystem
//! local_fs::register(&conn, "my_files", "/tmp")?;
//!
//! // Query using standard SQL
//! let mut stmt = conn.prepare(
//! "SELECT path, size FROM my_files
//! WHERE size > 1000000
//! ORDER BY size DESC"
//! )?;
//!
//! let files = stmt.query_map([], |row| {
//! Ok((row.get::<_, String>(0)?, row.get::<_, i64>(1)?))
//! })?;
//!
//! for file in files {
//! let (path, size) = file?;
//! println!("{}: {} bytes", path, size);
//! }
//! # Ok(())
//! # }
//! ```
//!
//! ## Available Backends
//!
//! - [`backends::local_fs`] - Local filesystem
//! - [`backends::s3`] - AWS S3 (and compatible services)
//! - [`backends::dropbox`] - Dropbox
//! - [`backends::gdrive`] - Google Drive
//! - [`backends::http`] - HTTP/HTTPS endpoints
// Re-export commonly used types
pub use ;
pub use ;