Update Cargo.toml

This commit is contained in:
Григорий Сафронов 2026-01-20 21:38:03 +00:00
parent c8e6f8138a
commit 2e7887cce9

View File

@ -1,81 +1,82 @@
# Cargo.toml # futriix config.toml
# Конфигурация Futriix Server с wait-free архитектурой
[package] [server]
name = "futriix" host = "127.0.0.1" # Хост для привязки сервера
version = "1.0.0" http_port = 9090 # Порт HTTP сервера
edition = "2024" https_port = 8443 # Порт HTTPS сервера
max_connections = 10000 # Максимальное количество одновременных подключений
connection_timeout = 30 # Таймаут соединения в секундах
http2_enabled = true # Включение поддержки HTTP/2
http = true # Новая директива: включение HTTP сервера
https = false # Новая директива: включение HTTPS сервера
[dependencies] [tls]
# Асинхронная среда выполнения для высокопроизводительных сетевых приложений enabled = false # Включение TLS/SSL
tokio = { version = "1.0", features = ["full"] } cert_path = "/futriix/certs/server.crt" # Путь к сертификату сервера
key_path = "/futriix/certs/server.key" # Путь к приватному ключу
# Сериализация/десериализация данных (JSON, бинарные форматы) [replication]
serde = { version = "1.0", features = ["derive"] } enabled = true # Включение репликации
serde_json = "1.0" master_nodes = [
"node1.futriix:9090", # Основные узлы репликации
"node2.futriix:9090",
"node3.futriix:9090"
]
sync_interval = 1000 # Интервал синхронизации в миллисекундах
replication_factor = 3 # Фактор репликации (сколько копий данных)
# Бинарная сериализация MessagePack (используется в протоколе) [sharding]
rmp-serde = "1.1" enabled = true # Включение шардинга
rmp = "0.8" shards = 3 # Количество шардов
replication_factor = 2 # Фактор репликации для шардинга
auto_balance = true # Автоматическая балансировка нагрузки
# Парсинг конфигурационных файлов TOML [cluster] # Новая секция для кластера
toml = "0.8" enabled = true # Включение кластерного режима
name = "futriix-main-cluster" # Имя кластера
# Встроенный Lua интерпретатор для скриптинга [acl]
rlua = "0.20.1" enabled = false # Включение контроля доступа (ACL)
allowed_ips = ["127.0.0.1", "192.168.1.0/24"] # Разрешенные IP-адреса
denied_ips = ["10.0.0.5"] # Запрещенные IP-адреса
# Многопоточные структуры данных (каналы, очереди) [logging]
crossbeam = "0.8" level = "info" # Уровень логирования (debug, info, warn, error)
file_path = "/futriix/logs/futriix.log" # Путь к файлу лога
max_file_size = 10485760 # Максимальный размер файла лога (10MB)
backup_count = 5 # Количество резервных копий логов
# Concurrent HashMap для многопоточного доступа [backup]
dashmap = "5.0" enabled = true # Включение автоматического бэкапа
interval = 3600 # Интервал бэкапа в секундах (1 час)
retention = 7 # Время хранения бэкапов в днях
path = "/futriix/backups" # Директория для хранения бэкапов
# Система логирования [csv] # Новая секция для CSV
log = "0.4" import_dir = "/futriix/csv/import" # Директория для импорта CSV файлов
env_logger = "0.10" export_dir = "/futriix/csv/export" # Директория для экспорта CSV файлов
max_file_size = 104857600 # Максимальный размер CSV файла (100MB)
# Упрощенная обработка ошибок [security]
anyhow = "1.0" require_authentication = false # Требовать аутентификацию
jwt_secret = "your-secret-key-here" # Секретный ключ для JWT токенов
password_hashing_rounds = 12 # Количество раундов хэширования паролей
# Создание пользовательских типов ошибок [performance]
thiserror = "1.0" max_memory_mb = 1024 # Максимальное использование памяти в MB
cache_size_mb = 512 # Размер кэша в MB
# Генерация уникальных идентификаторов worker_threads = 4 # Количество рабочих потоков
uuid = { version = "1.0", features = ["v4"] } io_threads = 2 # Количество потоков ввода/вывода
# Работа с датой и временем
chrono = { version = "0.4", features = ["serde"] }
# HTTP сервер и клиент
hyper = { version = "0.14", features = ["full"] }
# TLS поддержка для HTTPS
hyper-rustls = "0.24"
rustls = "0.21"
rustls-pemfile = "1.0"
tokio-rustls = "0.24"
# Хэш-функции для консистентного хэширования в шардинге
siphasher = "1.0.1"
# Работа с CSV файлами (импорт/экспорт)
csv = "1.3"
# Асинхронные примитивы и утилиты
futures = "0.3"
# Генерация случайных чисел для тестирования
rand = "0.8"
[dev-dependencies]
# Тестирование: многопоточность, таймеры
tokio = { version = "1.0", features = ["full", "rt-multi-thread", "time"] }
# Генерация случайных чисел для тестов
rand = "0.8"
[[test]]
name = "integration_tests"
path = "tests/integration_tests.rs"
harness = true
[monitoring]
enabled = false # Включение мониторинга
prometheus_port = 9090 # Порт для метрик Prometheus
health_check_interval = 30 # Интервал проверки здоровья в секундах
[limits]
max_documents_per_collection = 1000000 # Максимальное количество документов в коллекции
max_collections = 1000 # Максимальное количество коллекций
max_indexes_per_collection = 16 # Максимальное количество индексов на коллекцию
request_timeout_ms = 5000 # Таймаут запроса в миллисекундах
max_request_size_mb = 10 # Максимальный размер запроса в MB