tcvectordb 0.1.9

Rust SDK for Tencent Cloud VectorDB
Documentation
use tcvectordb::{enums::ReadConsistency, VectorDBClient};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    println!("Testing VectorDB connection...");

    let client = VectorDBClient::new(
        "http://10.15.181.72:80",
        "root",
        "12322",
        ReadConsistency::EventualConsistency,
        30,
    )?;

    println!("Client created successfully");

    match client.list_databases().await {
        Ok(databases) => {
            println!("✅ Connection successful!");
            println!("Found {} databases:", databases.len());
            for db in databases {
                println!("  - {}", db.name());
            }
        }
        Err(e) => {
            println!("❌ Connection failed: {}", e);

            if let Some(diagnosis) = e.diagnose_http_error() {
                println!("\nDiagnosis:\n{}", diagnosis);
            }

            return Err(e.into());
        }
    }

    // 如果连接成功,尝试创建测试数据库
    let test_db_name = "test_db";
    match client.create_database_if_not_exists(test_db_name).await {
        Ok(db) => {
            println!("✅ Database '{}' created successfully", db.name());

            // 清理
            match client.drop_database(test_db_name).await {
                Ok(_) => println!("✅ Test database cleaned up"),
                Err(e) => println!("⚠️  Warning: {}", e),
            }
        }
        Err(e) => {
            println!("❌ Failed to create database: {}", e);
            return Err(e.into());
        }
    }

    println!("🎉 All tests passed!");
    Ok(())
}