things3_core/
lib.rs

1//! Things Core - Core library for Things 3 database access and data models
2//!
3//! This library provides high-performance access to the Things 3 database,
4//! with comprehensive data models and efficient querying capabilities.
5
6pub mod backup;
7pub mod cache;
8pub mod cache_invalidation_middleware;
9pub mod config;
10pub mod config_hot_reload;
11pub mod config_loader;
12pub mod database;
13pub mod disk_cache;
14pub mod error;
15pub mod export;
16pub mod mcp_cache_middleware;
17pub mod mcp_config;
18pub mod models;
19pub mod observability;
20pub mod performance;
21pub mod query;
22pub mod query_cache;
23pub mod query_performance;
24
25#[cfg(any(test, feature = "test-utils"))]
26pub mod test_utils;
27
28pub use backup::{BackupManager, BackupMetadata, BackupStats};
29pub use cache::{CacheConfig, CacheStats, ThingsCache};
30pub use cache_invalidation_middleware::{
31    CacheInvalidationHandler, CacheInvalidationMiddleware, InvalidationConfig, InvalidationEvent,
32    InvalidationEventType, InvalidationRule, InvalidationStats, InvalidationStrategy,
33};
34pub use config::ThingsConfig;
35pub use config_hot_reload::{
36    ConfigChangeHandler, ConfigHotReloader, ConfigHotReloaderWithHandler,
37    DefaultConfigChangeHandler,
38};
39pub use config_loader::{load_config, load_config_from_env, load_config_with_paths, ConfigLoader};
40pub use database::{
41    get_default_database_path, ComprehensiveHealthStatus, DatabasePoolConfig, DatabaseStats,
42    PoolHealthStatus, PoolMetrics, SqliteOptimizations, ThingsDatabase,
43};
44pub use disk_cache::{DiskCache, DiskCacheConfig, DiskCacheStats};
45pub use error::{Result, ThingsError};
46pub use export::{DataExporter, ExportConfig, ExportData, ExportFormat};
47pub use mcp_cache_middleware::{MCPCacheConfig, MCPCacheEntry, MCPCacheMiddleware, MCPCacheStats};
48pub use mcp_config::McpServerConfig;
49pub use models::*;
50pub use observability::{
51    CheckResult, HealthStatus, ObservabilityConfig, ObservabilityError, ObservabilityManager,
52    ThingsMetrics,
53};
54pub use performance::{
55    CacheMetrics, ComprehensivePerformanceSummary, OperationMetrics, PerformanceMonitor,
56    PerformanceStats, PerformanceSummary, QueryMetrics,
57};
58pub use query_cache::{QueryCache, QueryCacheConfig, QueryCacheStats};
59pub use query_performance::{
60    ImplementationEffort, OptimizationPriority, OptimizationType, QueryContext,
61    QueryOptimizationSuggestion, QueryPerformanceMetrics, QueryPerformanceStats,
62    QueryPerformanceSummary, QueryPerformanceTracker,
63};
64
65/// Re-export commonly used types
66pub use chrono::{DateTime, NaiveDate, Utc};
67pub use serde::{Deserialize, Serialize};
68pub use uuid::Uuid;