rsiot/components/cmp_surrealdb/mod.rs
1//! Компонент для взаимодействия с базой данных SurrealDB
2//!
3//! # Настройка баз данных
4//!
5//! ## RocksDB
6//!
7//! Для сборки под Windows поставить через Visual Studio Installer:
8//!
9//! - поставил llvm через choco
10//! - Visual Studio Build Tools:
11//! - MSVC v143 - VS 2022 C++
12//! - Windows 11 SDK
13//! - C++ CMake tools for Windows
14//!
15//! Для включения бинарника необходимо указать соответствующий флаг в `features`:
16//!
17//! ```toml
18//! surrealdb-rocksdb = { version = "0.24.0-surreal.1", features = ["mt_static"] }
19//! ```
20//!
21//! ## TiKV
22//!
23//! https://tikv.org/docs/7.1/deploy/install/test/#deploy-the-tikv-cluster-on-a-single-machine
24//!
25//! ``` sh
26//! wget https://download.pingcap.org/tidb-latest-linux-amd64.tar.gz
27//! wget http://download.pingcap.org/tidb-latest-linux-amd64.sha256
28//!
29//! sha256sum -c tidb-latest-linux-amd64.sha256
30//!
31//! # Extract the package.
32//! tar -xzf tidb-latest-linux-amd64.tar.gz
33//! ```
34
35mod component;
36mod config;
37mod error;
38mod fn_process;
39mod tasks;
40
41pub use component::{COMPONENT_NAME, Cmp};
42pub use config::{Config, ConfigConnection, RequestInputConfig, RequestStartConfig};
43pub use error::Error;
44
45type Result<T> = std::result::Result<T, Error>;
46
47static DB: std::sync::LazyLock<surrealdb::Surreal<surrealdb::engine::any::Any>> =
48 std::sync::LazyLock::new(surrealdb::Surreal::init);