| Crates.io | burncloud-database-client |
| lib.rs | burncloud-database-client |
| version | 0.1.1 |
| created_at | 2025-09-21 16:30:18.110792+00 |
| updated_at | 2025-09-21 17:42:19.019723+00 |
| description | High-level database client with migrations, pooling, and AI model management for BurnCloud |
| homepage | https://github.com/burncloud/burncloud-database |
| repository | https://github.com/burncloud/burncloud-database |
| max_upload_size | |
| id | 1848927 |
| size | 193,039 |
High-level database client with migrations, connection pooling, and specialized AI model management repositories for BurnCloud.
burncloud-database-client is the complete database solution for BurnCloud AI management systems. It provides a high-level, batteries-included approach to database operations with specialized repositories for AI model management, monitoring, and system administration.
[dependencies]
burncloud-database-client = "0.1"
use burncloud_database_client::*;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// Create and initialize the database
let db = BurnCloudDatabaseBuilder::new()
.with_postgres("localhost", 5432, "burncloud", "user", "password")
.with_pool_size(10)
.build_and_initialize()
.await?;
// Add an AI model
let model = AiModel {
id: uuid::Uuid::new_v4(),
name: "GPT-4".to_string(),
version: "turbo".to_string(),
size_gb: 45.0,
model_type: ModelType::ChatCompletion,
provider: "OpenAI".to_string(),
// ... other fields
};
let context = QueryContext::default();
db.ai_models.base.create(&model, &context).await?;
// Query running deployments
let running = db.deployments.get_running_deployments(&context).await?;
println!("Running deployments: {}", running.len());
// Get system statistics
let stats = db.get_database_stats().await?;
println!("Total models: {}", stats.models_count);
Ok(())
}
The central hub that provides access to all repositories and management functions:
let db = BurnCloudDatabaseBuilder::new()
.with_postgres("localhost", 5432, "burncloud", "user", "pass")
.build_and_initialize()
.await?;
// Access specialized repositories
db.ai_models // AI model management
db.deployments // Model deployments
db.system_metrics // System monitoring
db.model_metrics // Model performance
db.request_logs // API request logging
db.user_settings // User preferences
db.security_config // Security management
// Search for models
let chat_models = db.ai_models.find_by_type(ModelType::ChatCompletion, &context).await?;
// Find by status
let available = db.ai_models.find_by_status(ModelStatus::Available, &context).await?;
// Text search
let search_results = db.ai_models.search("GPT", &context).await?;
// Get running deployments
let running = db.deployments.get_running_deployments(&context).await?;
// Find deployments by model
let model_deployments = db.deployments.find_by_model_id(model_id, &context).await?;
// Check port availability
let port_in_use = db.deployments.find_by_port(8080, &context).await?;
// Record system metrics
let metrics = SystemMetrics {
cpu_usage: 45.2,
memory_usage: 78.5,
// ... other metrics
};
db.system_metrics.base.create(&metrics, &context).await?;
// Get latest metrics
let latest = db.system_metrics.get_latest(&context).await?;
// Query time range
let start = chrono::Utc::now() - chrono::Duration::hours(24);
let end = chrono::Utc::now();
let recent = db.system_metrics.find_by_time_range(start, end, &context).await?;
Automatic schema management with versioned migrations:
// Migrations run automatically on initialization
db.initialize().await?;
// Manual migration management
let status = db.migration_manager.get_migration_status().await?;
db.migration_manager.rollback_migration("003").await?;
// Backup configuration
let backup = db.backup_config().await?;
// Restore from backup
db.restore_config(&backup).await?;
// Cleanup old data
let stats = db.cleanup_old_data(30).await?; // Keep 30 days
println!("Cleaned {} old records", stats.metrics_deleted);
All major databases are supported through feature flags:
[dependencies]
burncloud-database-client = { version = "0.1", features = ["postgres"] } # Default
burncloud-database-client = { version = "0.1", features = ["mysql"] }
burncloud-database-client = { version = "0.1", features = ["sqlite"] }
burncloud-database-client = { version = "0.1", features = ["mongodb"] }
burncloud-database-client = { version = "0.1", features = ["all"] } # All databases
See the examples directory for complete usage examples:
We welcome contributions! Please see our Contributing Guide for details.
Licensed under either of
at your option.