Update README.md

This commit is contained in:
Григорий Сафронов 2026-01-15 21:32:50 +00:00
parent ec1f8eb471
commit b8fa2f113b

View File

@ -113,15 +113,16 @@ flusql — это высокопроизводительная встраива
## Системные требования ## Системные требования
Данный раздел описывает системные требования, предъявляемые как к аппаратному, так и к программному обеспечению, на котором планируется запускать `futriix` Данный раздел описывает системные требования, предъявляемые как к аппаратному, так и к программному обеспечению, на котором планируется запускать `flusql`
* Тип процессора: Intel 86x * Тип процессора: Intel 86x
* Разрядность процессора: 64-бит * Разрядность процессора: 64-бит
* ОЗУ: от 4 Гб и выше * ОЗУ: от 4 Гб и выше
* Операционная система: **Linux Fedora** (**рекомендуемая**), Linux семейства Debian (Ubintu, Linux Mint, Linux MX) * Операционная система: **Linux Fedora** (**рекомендуемая**), Linux семейства Debian (Ubintu, Linux Mint, Linux MX)
> [!WARNING] > [!WARNING]
> **Futriix может быть скомпилирован для следующих операционных систем: `OSX`, `Open Indiana`, `FreeBSD`, но сборка для этих операционных систем не проводилась!!!** > **Flusql может быть скомпилирован для следующих операционных систем: `OSX`, `Open Indiana`, `FreeBSD`, но сборка для этих операционных систем не проводилась!!!**
<p align="right">(<a href="#readme-top">К началу</a>)</p> <p align="right">(<a href="#readme-top">К началу</a>)</p>
@ -218,6 +219,7 @@ cargo test
По умолчанию, после компиляции в директории `/flusql/target/release` находится файл `libflusql.so`-это динамически подключаемая библиотека (shared object), созданная в процессе компиляции проекта flusql. По умолчанию, после компиляции в директории `/flusql/target/release` находится файл `libflusql.so`-это динамически подключаемая библиотека (shared object), созданная в процессе компиляции проекта flusql.
Для production сборки будет создана оптимизированная версия: Для production сборки будет создана оптимизированная версия:
```sh ```sh
@ -230,25 +232,35 @@ cargo build --release
* Без отладочной информации * Без отладочной информации
* Готов к использованию в production-среде * Готов к использованию в production-среде
**libflusql.so** — это скомпилированная библиотека flusql, которая может использоваться как самостоятельный компонент или подключаться к другим программам для расширения их функциональности SQL и Lua возможностями. **libflusql.so** — это скомпилированная библиотека flusql, которая может использоваться как самостоятельный компонент или подключаться к другим программам для расширения их функциональности SQL и Lua возможностями.
**Основное назначение** **Основное назначение**
Это скомпилированная версия Rust-библиотеки в формате динамической библиотеки для ОС семейства Linux: **libflusql**-это скомпилированная версия Rust-библиотеки в формате динамической библиотеки для ОС семейства Linux:
* .so — стандартное расширение для shared objects в Linux (аналог .dll в Windows) * .so — стандартное расширение для shared objects в Linux (аналог .dll в Windows)
* Содержит откомпилированный код всех модулей проекта (кроме main.rs) * Содержит откомпилированный код всех модулей проекта (кроме main.rs)
* Может быть динамически загружена и использована другими программами * Может быть динамически загружена и использована другими программами
Данная библиотека создаётся, благодаря указанной конфигурации в файле `Cargo.toml`, а именно строке: `crate-type = ["cdylib", "staticlib", "rlib"]`. Она означает, что компилятор создает несколько форматов: Данная библиотека создаётся, благодаря указанной конфигурации в файле `Cargo.toml`, а именно строке: `crate-type = ["cdylib", "staticlib", "rlib"]`. Она означает, что компилятор создает несколько форматов:
* cdylib → libflusql.so (динамическая библиотека для C-интерфейса) * cdylib → libflusql.so (динамическая библиотека для C-интерфейса)
* staticlib → libflusql.a (статическая библиотека) * staticlib → libflusql.a (статическая библиотека)
* rlib → libflusql.rlib (Rust-специфичный формат для зависимостей) * rlib → libflusql.rlib (Rust-специфичный формат для зависимостей)
**Практическое использование** **Практическое использование**
> [!IMPORTANT]
**Отличие библиотеки от исполняемого файла**
> flusql — самостоятельная программа (компилируется из src/main.rs)
> libflusql.so — библиотека для использования в других программах
1) Использование как библиотеки Lua 1) Использование как библиотеки Lua
Так как flusql поддерживает Lua, libflusql.so может использоваться как: Так как flusql поддерживает Lua, libflusql.so может использоваться как:
@ -256,6 +268,7 @@ cargo build --release
* Модуль Lua (через require в Lua) * Модуль Lua (через require в Lua)
* Расширение для других программ, которые могут загружать динамические библиотеки * Расширение для других программ, которые могут загружать динамические библиотеки
2) Интеграция с другими языками 2) Интеграция с другими языками
Библиотека может быть использована из: Библиотека может быть использована из: