From ae0b0e150cf747f80719107095d3b1e7d7ca3075 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=93=D1=80=D0=B8=D0=B3=D0=BE=D1=80=D0=B8=D0=B9=20=D0=A1?= =?UTF-8?q?=D0=B0=D1=84=D1=80=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Thu, 15 Jan 2026 21:16:45 +0000 Subject: [PATCH] Update README.md --- README.md | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/README.md b/README.md index ed62805..70c649b 100644 --- a/README.md +++ b/README.md @@ -43,6 +43,7 @@
  • Структура модулей
  • Подготовка
  • Компиляция
  • +
  • Динамическая библиотека
  • Документация API
  • Дорожная карта
  • Контакты
  • @@ -213,6 +214,54 @@ cargo test

    (К началу)

    +## Динамическая библиотека + +По умолчанию, после компиляции в директории `/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) + + ## Использование **Запуск интерактивного интефейса**