rat_quickdb/
lib.rs

1//! rat_quickdb - 跨数据库ORM库
2//! 
3//! 提供统一的数据库操作接口,支持SQLite、PostgreSQL、MySQL和MongoDB
4//! 通过连接池和无锁队列实现高性能的数据后端无关性
5
6// 导出所有公共模块
7pub mod error;
8pub mod types;
9pub mod pool;
10pub mod manager;
11pub mod odm;
12pub mod model;
13pub mod serializer;
14pub mod adapter;
15pub mod config;
16pub mod task_queue;
17pub mod table;
18
19// 条件编译的模块
20pub mod cache;
21pub mod id_generator;
22
23// Python API 模块(仅在启用 python-bindings 特性时编译)
24#[cfg(feature = "python-bindings")]
25pub mod python_api;
26
27// 重新导出常用类型和函数
28pub use error::{QuickDbError, QuickDbResult};
29pub use types::*;
30pub use pool::{ConnectionPool, DatabaseConnection};
31pub use manager::{
32    PoolManager, add_database, remove_database, get_connection, release_connection,
33    get_aliases, set_default_alias, health_check, shutdown,
34    get_id_generator, get_mongo_auto_increment_generator
35};
36
37pub use manager::{
38    get_cache_manager, get_cache_stats, clear_cache, clear_all_caches
39};
40pub use odm::{AsyncOdmManager, OdmOperations, get_odm_manager, get_odm_manager_mut};
41pub use model::{
42    Model, ModelOperations, ModelManager, FieldType, FieldDefinition, ModelMeta, IndexDefinition,
43    array_field, list_field, string_field, integer_field, float_field, boolean_field,
44    datetime_field, uuid_field, json_field, dict_field, reference_field
45};
46pub use serializer::{DataSerializer, SerializerConfig, OutputFormat, SerializationResult};
47pub use adapter::{DatabaseAdapter, create_adapter};
48pub use config::{
49    GlobalConfig, GlobalConfigBuilder, DatabaseConfigBuilder, PoolConfigBuilder,
50    AppConfig, AppConfigBuilder, LoggingConfig, LoggingConfigBuilder,
51    Environment, LogLevel, sqlite_config, postgres_config, mysql_config,
52    mongodb_config, mongodb_config_with_builder
53};
54pub use task_queue::{
55    TaskQueueManager, get_global_task_queue, initialize_global_task_queue, 
56    shutdown_global_task_queue
57};
58pub use table::{TableManager, TableSchema, ColumnDefinition, ColumnType, IndexType};
59
60// 条件导出缓存相关类型
61pub use cache::{CacheManager, CacheStats};
62
63// 导出ID生成器相关类型
64pub use id_generator::{IdGenerator, MongoAutoIncrementGenerator};
65
66// 重新导出 ODM 操作函数(底层 DataValue API)
67// 注意:这些函数返回 DataValue,主要用于内部使用
68// 对于应用开发,推荐使用 ModelManager<T> 获取结构化数据
69pub use odm::{create, find_by_id, find, update, update_by_id, delete, delete_by_id, count, exists};
70
71// Python API 导出(仅在启用 python-bindings 特性时)
72// 注意:Python绑定相关的导出已移至专门的Python绑定库中
73
74// 日志系统导入
75use rat_logger::info;
76
77
78/// 初始化rat_quickdb库
79///
80/// 这个函数会初始化rat_quickdb库
81///
82/// 注意:日志系统由调用者自行初始化,本库不再自动初始化日志
83pub fn init() {
84    // 库的基本初始化逻辑
85    // 日志系统由调用者负责初始化
86}
87
88/// 初始化rat_quickdb库
89///
90/// 注意:此函数已弃用,请使用init()
91/// 日志系统由调用者自行初始化
92#[deprecated(since = "0.2.0", note = "请使用init(),日志系统由调用者自行初始化")]
93pub fn init_with_log_level(_level: rat_logger::LevelFilter) {
94    init();
95}
96
97/// 库版本信息
98pub const VERSION: &str = env!("CARGO_PKG_VERSION");
99
100/// 库名称
101pub const NAME: &str = env!("CARGO_PKG_NAME");
102
103/// 获取库信息
104pub fn get_info() -> String {
105    format!("{} v{}", NAME, VERSION)
106}