- Убрана установка устаревших значений в конфиге cors
- Удалена дублирующаяся логика создания папки logs
- Изменен метод установки cors на установку с помощью библиотеки
@elysiajs/cors - Библиотека
pinoи ее модули заменены на@vaylo/pino - Обновлены зависимости
- Добавлена проверка на allowUnsafeEval при создание клиента перевода
- Добавлена поддержка YandexGPT Translate, Bing Translate и Libre Translate (по умолчанию выключен)
- Обновлена версия Scalar
- Обновлены зависимости
Warning
Данная версия имеет существенные изменения в структуре ответов эндпоинтов. Перед обновлением рекомендуется обновить логику работы в вашем коде
- Добавлена валидация конфига
- Добавлена возможность установить все изменяемые значения в конфиге с помощью переменных окружения (.env)
- Добавлены типы для переменных окружения
- Добавлен oxlint и одноименный плагин для eslint
- Добавлена поддержка логирования в Loki
- Добавлен префикс /v2
- Добавлена возможность выбрать сервис перевода с помощью установки параметра запроса
- Добавлена возможность массового перевода с помощью POST запроса в котором передается массив с текстовыми фразами
- При возникновении ошибки взаимодействия с провайдером перевода, сервер, теперь, будет выдавать ошибку вида { "error": "..." }
- Возврат пустого языка, теперь, тоже считается за ошибку
- Основная логика сервера вынесена в библиотеку @toil/translate
- Переписана логика логирования
- Плагин cors заменен на выставление корсов через onRequest
- Конфигурация eslint переписана на flat конфиг
- Обновлены все зависимости до последних версий
- Удален плагин sonarjs
- Удалено разделение на fileLog и log в консоль
- Удалена опция для включения логирования всех запросов
- Удалена опция для отключения логирования в файл
-
Убраны разные варианты документации из-за особенностей библиотеки (оставлен scalar по пути /docs)
-
Добавлены GET методы для /translate, /detect (немного быстрее чем POST)
-
Убраны настройки отвечающие за ротацию логов (максимальный размер и срок хранения логов)
-
Убрана поддержка логирования в hyperdx
-
Сервер переписан на Bun с использованием фреймворка Elysia для увеличения производительности
Причины:
- Увеличение производительности ([~x1.7 real] 97 Req/s --> 166 Req/s, [~x3.5 local] 5692.49 Req/s --> 19769.18 Req/s)
- Уменьшение затрат ресурсов (~100mb (спустя некоторое время доходило до ~250mb) --> ~85mb (практически не изменяется со временем), ~10-80% of vCPU --> ~1% of vCPU)
- Стандартное оформление документации изменено на Scalar. Другие виды документации, так же, остались доступны с помощью
/redocи/swaggerui - Добавлено оформление документации с помощью Scalar
- Добавлено логирование случаев, когда Yandex возвращает пустой язык
- Добавлено разделение логов на файлы, если размер файла превышает размер указанный в конфиге. По умолчанию: 10 мб
- Добавлена поддержка сбора логов в hyperdx
- Отключено стандартное логирование строки запроса httpx
- Сервер Uvicorn заменен на более производительный Granian (#1)
- Сервер Hypercorn заменен на более производительный Uvicorn
- Добавлен эндпоинт для перевода
- Добавлен эндпоинт для получения списка языков доступных для перевода
- Добавлен эндпоинт для определения языка по тексту