diff --git a/Cargo.toml b/Cargo.toml index 0b70038..5ce70fc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,81 +1,82 @@ -# Cargo.toml +# futriix config.toml +# Конфигурация Futriix Server с wait-free архитектурой -[package] -name = "futriix" -version = "1.0.0" -edition = "2024" +[server] +host = "127.0.0.1" # Хост для привязки сервера +http_port = 9090 # Порт HTTP сервера +https_port = 8443 # Порт HTTPS сервера +max_connections = 10000 # Максимальное количество одновременных подключений +connection_timeout = 30 # Таймаут соединения в секундах +http2_enabled = true # Включение поддержки HTTP/2 +http = true # Новая директива: включение HTTP сервера +https = false # Новая директива: включение HTTPS сервера -[dependencies] -# Асинхронная среда выполнения для высокопроизводительных сетевых приложений -tokio = { version = "1.0", features = ["full"] } +[tls] +enabled = false # Включение TLS/SSL +cert_path = "/futriix/certs/server.crt" # Путь к сертификату сервера +key_path = "/futriix/certs/server.key" # Путь к приватному ключу -# Сериализация/десериализация данных (JSON, бинарные форматы) -serde = { version = "1.0", features = ["derive"] } -serde_json = "1.0" +[replication] +enabled = true # Включение репликации +master_nodes = [ + "node1.futriix:9090", # Основные узлы репликации + "node2.futriix:9090", + "node3.futriix:9090" +] +sync_interval = 1000 # Интервал синхронизации в миллисекундах +replication_factor = 3 # Фактор репликации (сколько копий данных) -# Бинарная сериализация MessagePack (используется в протоколе) -rmp-serde = "1.1" -rmp = "0.8" +[sharding] +enabled = true # Включение шардинга +shards = 3 # Количество шардов +replication_factor = 2 # Фактор репликации для шардинга +auto_balance = true # Автоматическая балансировка нагрузки -# Парсинг конфигурационных файлов TOML -toml = "0.8" +[cluster] # Новая секция для кластера +enabled = true # Включение кластерного режима +name = "futriix-main-cluster" # Имя кластера -# Встроенный Lua интерпретатор для скриптинга -rlua = "0.20.1" +[acl] +enabled = false # Включение контроля доступа (ACL) +allowed_ips = ["127.0.0.1", "192.168.1.0/24"] # Разрешенные IP-адреса +denied_ips = ["10.0.0.5"] # Запрещенные IP-адреса -# Многопоточные структуры данных (каналы, очереди) -crossbeam = "0.8" +[logging] +level = "info" # Уровень логирования (debug, info, warn, error) +file_path = "/futriix/logs/futriix.log" # Путь к файлу лога +max_file_size = 10485760 # Максимальный размер файла лога (10MB) +backup_count = 5 # Количество резервных копий логов -# Concurrent HashMap для многопоточного доступа -dashmap = "5.0" +[backup] +enabled = true # Включение автоматического бэкапа +interval = 3600 # Интервал бэкапа в секундах (1 час) +retention = 7 # Время хранения бэкапов в днях +path = "/futriix/backups" # Директория для хранения бэкапов -# Система логирования -log = "0.4" -env_logger = "0.10" +[csv] # Новая секция для CSV +import_dir = "/futriix/csv/import" # Директория для импорта CSV файлов +export_dir = "/futriix/csv/export" # Директория для экспорта CSV файлов +max_file_size = 104857600 # Максимальный размер CSV файла (100MB) -# Упрощенная обработка ошибок -anyhow = "1.0" +[security] +require_authentication = false # Требовать аутентификацию +jwt_secret = "your-secret-key-here" # Секретный ключ для JWT токенов +password_hashing_rounds = 12 # Количество раундов хэширования паролей -# Создание пользовательских типов ошибок -thiserror = "1.0" - -# Генерация уникальных идентификаторов -uuid = { version = "1.0", features = ["v4"] } - -# Работа с датой и временем -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 +[performance] +max_memory_mb = 1024 # Максимальное использование памяти в MB +cache_size_mb = 512 # Размер кэша в MB +worker_threads = 4 # Количество рабочих потоков +io_threads = 2 # Количество потоков ввода/вывода +[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 \ No newline at end of file