Upload files to "/"
This commit is contained in:
parent
e7f2b700ea
commit
7240015784
105
Cargo.toml
Normal file
105
Cargo.toml
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
[package]
|
||||||
|
name = "flusql"
|
||||||
|
version = "0.5.0"
|
||||||
|
edition = "2024"
|
||||||
|
authors = ["Your Name <your.email@example.com>"]
|
||||||
|
description = "Embedded SQL database with wait-free architecture, Lua support and clustering"
|
||||||
|
license = "BSD-2 LICENSE"
|
||||||
|
readme = "README.md"
|
||||||
|
repository = "https://source.futriix.ru/gvsafronov/flusql"
|
||||||
|
keywords = ["database", "sql", "embedded", "lua", "cluster", "mvcc", "wait-free"]
|
||||||
|
categories = ["database", "embedded"]
|
||||||
|
|
||||||
|
[features]
|
||||||
|
default = ["cli", "wal", "mvcc", "lua", "cluster", "plugins", "tokio"]
|
||||||
|
cli = ["ansi_term", "clap", "rustyline"] # интерактивный интерфейс
|
||||||
|
wal = [] # Write-Ahead Log
|
||||||
|
mvcc = [] # Multi-Version Concurrency Control
|
||||||
|
lua = ["mlua/lua54", "mlua/vendored"] # поддержка Lua 5.4 с встроенной библиотекой
|
||||||
|
cluster = ["serde", "serde_json", "tokio-tungstenite", "reqwest", "tokio"] # кластерные функции
|
||||||
|
plugins = ["serde", "serde_json", "uuid", "crossbeam"] # поддержка плагинов с lock-free архитектурой
|
||||||
|
full = ["cli", "wal", "mvcc", "lua", "cluster", "plugins"]
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
# Основные системные зависимости
|
||||||
|
tokio = { version = "1.0", features = ["full"], optional = true } # асинхронная среда выполнения
|
||||||
|
futures = "0.3" # абстракции для асинхронного программирования
|
||||||
|
async-trait = "0.1" # поддержка async в трейтах
|
||||||
|
log = "0.4" # логирование
|
||||||
|
env_logger = "0.11" # конфигурация логов через переменные окружения
|
||||||
|
parking_lot = "0.12" # эффективные примитивы синхронизации (альтернатива std::sync)
|
||||||
|
dashmap = "5.0" # конкурентные HashMap на основе sharding
|
||||||
|
thiserror = "1.0" # удобные ошибки через derive макрос
|
||||||
|
anyhow = "1.0" # простая обработка ошибок для приложений
|
||||||
|
itertools = "0.12" # дополнительные итераторы
|
||||||
|
chrono = { version = "0.4", features = ["serde"] } # дата и время
|
||||||
|
uuid = { version = "1.0", features = ["v4", "serde"], optional = true } # генерация UUID
|
||||||
|
serde = { version = "1.0", features = ["derive"], optional = true } # сериализация/десериализация
|
||||||
|
mlua = { version = "0.11.5", optional = true } # интеграция с Lua
|
||||||
|
tokio-util = "0.7.0" # утилиты для Tokio
|
||||||
|
|
||||||
|
# Дополнительные зависимости
|
||||||
|
hex = "0.4.3" # кодирование/декодирование hex
|
||||||
|
crossbeam = { version = "0.8.4", optional = true } # lock-free структуры данных и каналы
|
||||||
|
toml = "0.5" # парсинг TOML файлов
|
||||||
|
libc = "0.2" # FFI для системных вызовов
|
||||||
|
postcard = "1.0" # компактная бинарная сериализация
|
||||||
|
atty = "0.2" # проверка типа терминала
|
||||||
|
lazy_static = "1.4" # ленивая инициализация статических переменных
|
||||||
|
regex = "1.5" # регулярные выражения
|
||||||
|
csv = "1.1" # работа с CSV файлами
|
||||||
|
memmap2 = "0.5" # memory-mapped файлы
|
||||||
|
arc-swap = "1.4" # атомарная замена Arc
|
||||||
|
unicode-width = "0.1" # вычисление ширины Unicode символов
|
||||||
|
|
||||||
|
# Сетевые и кластерные зависимости (опционально)
|
||||||
|
reqwest = { version = "0.11", optional = true } # HTTP клиент
|
||||||
|
tungstenite = { version = "0.20", optional = true } # WebSocket протокол
|
||||||
|
tokio-tungstenite = { version = "0.20", optional = true } # асинхронные WebSocket
|
||||||
|
serde_json = { version = "1.0", optional = true } # работа с JSON
|
||||||
|
|
||||||
|
# CLI и интерфейс
|
||||||
|
ansi_term = { version = "0.12", optional = true } # цветной вывод в терминал
|
||||||
|
clap = { version = "4.0", optional = true, features = ["derive"] } # парсинг аргументов командной строки
|
||||||
|
rustyline = { version = "12.0", optional = true } # редактирование строки ввода
|
||||||
|
colored = { version = "2.0", optional = true } # цветной вывод
|
||||||
|
prettytable-rs = { version = "0.10", optional = true } # табличный вывод
|
||||||
|
|
||||||
|
# Плагины и события (опционально)
|
||||||
|
notify = { version = "6.0", optional = true } # отслеживание файлов плагинов
|
||||||
|
|
||||||
|
# ДОБАВЛЕНЫ для исправления ошибок
|
||||||
|
atomic_refcell = "0.1" # атомарные ссылочные ячейки для wait-free доступа
|
||||||
|
nanorand = "0.7" # быстрый генератор случайных чисел
|
||||||
|
backtrace = "0.3" # трассировка стека для отладки
|
||||||
|
|
||||||
|
[dev-dependencies]
|
||||||
|
tempfile = "3.0" # временные файлы для тестов
|
||||||
|
criterion = "0.5" # бенчмарки
|
||||||
|
proptest = "1.0" # property-based тестирование
|
||||||
|
tokio-test = "0.4" # тестирование async
|
||||||
|
|
||||||
|
[lib]
|
||||||
|
name = "flusql"
|
||||||
|
path = "src/lib.rs"
|
||||||
|
crate-type = ["cdylib", "staticlib", "rlib"] # поддержка разных форматов
|
||||||
|
|
||||||
|
[profile.dev]
|
||||||
|
opt-level = 0
|
||||||
|
debug = true
|
||||||
|
debug-assertions = true
|
||||||
|
overflow-checks = true
|
||||||
|
|
||||||
|
[profile.release]
|
||||||
|
opt-level = 3
|
||||||
|
lto = true
|
||||||
|
codegen-units = 1
|
||||||
|
panic = 'abort' # для максимальной производительности
|
||||||
|
|
||||||
|
[profile.bench]
|
||||||
|
opt-level = 3
|
||||||
|
debug = false
|
||||||
|
debug-assertions = false
|
||||||
|
overflow-checks = false
|
||||||
|
lto = true
|
||||||
|
codegen-units = 1
|
||||||
Loading…
x
Reference in New Issue
Block a user