adbc_taos/
lib.rs

1//! ADBC-Taos: Arrow Database Connectivity driver for TDengine.
2//!
3//! This crate provides an ADBC (Arrow Database Connectivity) driver for TDengine,
4//! a high-performance time-series database. ADBC provides a standard interface
5//! for database access using Apache Arrow format, eliminating unnecessary data
6//! copies.
7//!
8//! # Features
9//!
10//! - Full ADBC Core API implementation
11//! - TDengine 3.3.0+ support
12//! - Connection pooling via `deadpool`
13//! - Prepared statements with parameter binding
14//! - Supertable metadata introspection
15//! - All TDengine data types (JSON, GEOMETRY, DECIMAL, BLOB)
16//!
17//! # Quick Start
18//!
19//! ```ignore
20//! use adbc_core::{Database, Connection, Statement, Driver};
21//! use adbc_core::options::{OptionDatabase, OptionValue};
22//!
23//! let mut driver = adbc_taos::TaosDriver::default();
24//! let mut db = driver.new_database()?;
25//! db.set_option(
26//!     OptionDatabase::Uri,
27//!     OptionValue::String("taos://root:taosdata@127.0.0.1:6030".to_string())
28//! )?;
29//!
30//! let conn = db.new_connection()?;
31//! let mut stmt = conn.new_statement()?;
32//! stmt.set_sql_query("SELECT * FROM my_table")?;
33//! let reader = stmt.execute()?;
34//!
35//! for batch in reader {
36//!     let batch = batch?;
37//!     println!("Got {} rows", batch.num_rows());
38//! }
39//! ```
40//!
41//! # Connection Pooling
42//!
43//! ```ignore
44//! use adbc_taos::TaosDatabase;
45//!
46//! let mut db = TaosDatabase::default();
47//! db.uri = "taos://root:taosdata@127.0.0.1:6030".to_string();
48//! db.set_pool_size(10);
49//!
50//! let conn1 = db.create_connection()?;
51//! let conn2 = db.create_connection()?;
52//! ```
53//!
54//! # Module Structure
55//!
56//! - [`driver`]: Entry point for creating database instances
57//! - [`database`]: Connection configuration and database creation
58//! - [`connection`]: Active database connection for queries
59//! - [`statement`]: SQL statement execution with binding
60//! - [`reader`]: Arrow RecordBatch streaming
61//! - [`pool`]: Connection pooling utilities
62//! - [`error`]: Error types
63
64pub mod connection;
65pub mod database;
66pub mod driver;
67pub mod error;
68pub mod pool;
69pub mod reader;
70pub mod statement;
71pub mod types;
72pub mod utils;
73
74// Re-export main types for convenience
75pub use connection::TaosConnection;
76pub use database::TaosDatabase;
77pub use driver::TaosDriver;
78pub use error::TaosError;
79pub use pool::{TaosPool, TaosPoolConfig, PooledTaosConnection};
80pub use utils::{Runtime, block_on_on_runtime};
81