Update README.md
This commit is contained in:
parent
cb27d80479
commit
ae0b0e150c
49
README.md
49
README.md
@ -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="#компиляция">Компиляция</a></li>
|
<li><a href="#компиляция">Компиляция</a></li>
|
||||||
|
<li><a href="#динамическая-библиотека">Динамическая библиотека</a></li>
|
||||||
<li><a href="#документация-api">Документация API</a></li>
|
<li><a href="#документация-api">Документация API</a></li>
|
||||||
<li><a href="#дорожная-карта">Дорожная карта</a></li>
|
<li><a href="#дорожная-карта">Дорожная карта</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>
|
<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)
|
||||||
|
|
||||||
|
|
||||||
## Использование
|
## Использование
|
||||||
|
|
||||||
**Запуск интерактивного интефейса**
|
**Запуск интерактивного интефейса**
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user