gluesql/
lib.rs

1//! # `GlueSQL`
2//!
3//! ## Multi-Model Database Engine as a Library
4//! `GlueSQL` is a Rust library for SQL databases that includes a parser ([sqlparser-rs](https://github.com/sqlparser-rs/sqlparser-rs)), an execution layer, and a variety of storage options, both persistent and non-persistent, all in one package. It is a versatile tool for developers, supporting both SQL and its own query builder (AST Builder). `GlueSQL` can handle structured and unstructured data, making it suitable for a wide range of use cases. It is portable and can be used with various storage types, including log files and read-write capable storage. `GlueSQL` is designed to be extensible and supports custom planners, making it a powerful tool for developers who need SQL support for their databases or services. `GlueSQL` is also flexible, as it can be used in Rust and JavaScript environments, and its language support is constantly expanding to include more programming languages.
5//!
6//! For more information on how to use `GlueSQL`, please refer to the [**official documentation website**](https://gluesql.org/docs). The documentation provides detailed information on how to install and use `GlueSQL`, as well as examples and tutorials on how to create custom storage systems and perform SQL operations.
7
8pub mod core {
9    pub use gluesql_core::*;
10}
11
12pub use gluesql_core::params;
13
14// Re-export the derive macro so users can `use gluesql::FromGlueRow`.
15pub use gluesql_macros::FromGlueRow;
16
17#[cfg(feature = "gluesql_memory_storage")]
18pub use gluesql_memory_storage;
19
20#[cfg(feature = "gluesql-shared-memory-storage")]
21pub use gluesql_shared_memory_storage;
22
23#[cfg(feature = "gluesql_sled_storage")]
24pub use gluesql_sled_storage;
25
26#[cfg(feature = "gluesql-redb-storage")]
27pub use gluesql_redb_storage;
28
29#[cfg(feature = "gluesql-json-storage")]
30pub use gluesql_json_storage;
31
32#[cfg(feature = "gluesql-csv-storage")]
33pub use gluesql_csv_storage;
34
35#[cfg(feature = "gluesql-parquet-storage")]
36pub use gluesql_parquet_storage;
37
38#[cfg(feature = "gluesql-file-storage")]
39pub use gluesql_file_storage;
40
41#[cfg(feature = "gluesql-git-storage")]
42pub use gluesql_git_storage;
43
44#[cfg(feature = "gluesql-mongo-storage")]
45pub use gluesql_mongo_storage;
46
47#[cfg(feature = "gluesql-composite-storage")]
48pub use gluesql_composite_storage;
49
50#[cfg(all(feature = "gluesql-web-storage", target_arch = "wasm32"))]
51pub use gluesql_web_storage;
52
53#[cfg(all(feature = "gluesql-idb-storage", target_arch = "wasm32"))]
54pub use gluesql_idb_storage;
55
56#[cfg(feature = "test-suite")]
57pub use test_suite;
58
59pub mod prelude {
60    pub use gluesql_core::prelude::*;
61
62    #[cfg(feature = "gluesql_memory_storage")]
63    pub use gluesql_memory_storage::MemoryStorage;
64
65    #[cfg(feature = "gluesql-shared-memory-storage")]
66    pub use gluesql_shared_memory_storage::SharedMemoryStorage;
67
68    #[cfg(feature = "gluesql_sled_storage")]
69    pub use gluesql_sled_storage::SledStorage;
70
71    #[cfg(feature = "gluesql-redb-storage")]
72    pub use gluesql_redb_storage::RedbStorage;
73
74    #[cfg(feature = "gluesql-json-storage")]
75    pub use gluesql_json_storage::JsonStorage;
76
77    #[cfg(feature = "gluesql-csv-storage")]
78    pub use gluesql_csv_storage::CsvStorage;
79
80    #[cfg(feature = "gluesql-parquet-storage")]
81    pub use gluesql_parquet_storage::ParquetStorage;
82
83    #[cfg(feature = "gluesql-file-storage")]
84    pub use gluesql_file_storage::FileStorage;
85
86    #[cfg(feature = "gluesql-git-storage")]
87    pub use gluesql_git_storage::GitStorage;
88
89    #[cfg(feature = "gluesql-mongo-storage")]
90    pub use gluesql_mongo_storage;
91
92    #[cfg(feature = "gluesql-composite-storage")]
93    pub use gluesql_composite_storage::CompositeStorage;
94
95    #[cfg(all(feature = "gluesql-web-storage", target_arch = "wasm32"))]
96    pub use gluesql_web_storage::WebStorage;
97
98    #[cfg(all(feature = "gluesql-idb-storage", target_arch = "wasm32"))]
99    pub use gluesql_idb_storage::IdbStorage;
100}