Update Cargo.toml
This commit is contained in:
parent
c8e6f8138a
commit
2e7887cce9
137
Cargo.toml
137
Cargo.toml
@ -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
|
||||||
Loading…
x
Reference in New Issue
Block a user