Update README.md

This commit is contained in:
Григорий Сафронов 2026-01-15 21:16:45 +00:00
parent cb27d80479
commit ae0b0e150c

View File

@ -43,6 +43,7 @@
<li><a href="#структура-модулей">Структура модулей</a></li>
<li><a href="#подготовка">Подготовка</a></li>
<li><a href="#компиляция">Компиляция</a></li>
<li><a href="#динамическая-библиотека">Динамическая библиотека</a></li>
<li><a href="#документация-api">Документация API</a></li>
<li><a href="#дорожная-карта">Дорожная карта</a></li>
<li><a href="#контакты">Контакты</a></li>
@ -213,6 +214,54 @@ cargo test
<p align="right">(<a href="#readme-top">К началу</a>)</p>
## Динамическая библиотека
По умолчанию, после компиляции в директории `/flusql/target/debug` находится файл `libflusql.so`-то динамически подключаемая библиотека (shared object), созданная в процессе компиляции проекта flusql.
**libflusql.so** — это скомпилированная библиотека flusql, которая может использоваться как самостоятельный компонент или подключаться к другим программам для расширения их функциональности SQL и Lua возможностями.
**Основное назначение**
Это скомпилированная версия Rust-библиотеки в формате динамической библиотеки для ОС семейства Linux:
* .so — стандартное расширение для shared objects в Linux (аналог .dll в Windows)
* Содержит откомпилированный код всех модулей проекта (кроме main.rs)
* Может быть динамически загружена и использована другими программами
Данная библиотека создаётся, благодаря указанной конфигурации в файле `Cargo.toml`, а именно строке: `crate-type = ["cdylib", "staticlib", "rlib"]`. Она означает, что компилятор создает несколько форматов:
* cdylib → libflusql.so (динамическая библиотека для C-интерфейса)
* staticlib → libflusql.a (статическая библиотека)
* rlib → libflusql.rlib (Rust-специфичный формат для зависимостей)
**Практическое использование**
1) Использование как библиотеки Lua
Так как flusql поддерживает Lua, libflusql.so может использоваться как:
* Модуль Lua (через require в Lua)
* Расширение для других программ, которые могут загружать динамические библиотеки
2) Интеграция с другими языками
Библиотека может быть использована из:
* C/C++ программ (через C-совместимый интерфейс)
* Python (через ctypes или cffi)
* Node.js (через FFI)
* Других языков с поддержкой загрузки .so файлов
3) Тестирование и отладка
Файл находится в target/debug, что означает:
* Скомпилирован с отладочной информацией (debug = true)
* Не оптимизирован для производительности
* Содержит символы для отладки
* Используется при запуске тестов (cargo test)
## Использование
**Запуск интерактивного интефейса**