|
|
|
@ -1,10 +1,20 @@ |
|
|
|
|
# Тестовое задание для Stilsoft |
|
|
|
|
|
|
|
|
|
Сервис для асинхронной обработки ссылок. Написан на tokio+axum+sled. |
|
|
|
|
Сервис для асинхронной обработки ссылок. |
|
|
|
|
|
|
|
|
|
Для настройки сервиса используются переменные окружения в файле `.env`. Экспортировать их в терминал не нужно, они считаются автоматически. |
|
|
|
|
Запуск осуществляется через `cargo run`. |
|
|
|
|
|
|
|
|
|
Реализованные фичи: |
|
|
|
|
- сервер на axum с API для управления ссылками (просмотр/загрузка/удаление, см. схему ниже) |
|
|
|
|
- in-memory хранилище на sled |
|
|
|
|
- из результата запроса ссылки достаётся количество символов |
|
|
|
|
- кэширование результатов (бессрочное) |
|
|
|
|
- удаление дубликатов ссылок |
|
|
|
|
- возможность указать размер пула обработчиков ссылок через URL_HANDLERS_POOL_SIZE |
|
|
|
|
- логирование и чтение настроек логирования через RUST_LOG |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Для отправки HTTP-запросов к сервису можно использовать дополнительную утилиту run.py: |
|
|
|
|
``` |
|
|
|
|
./run.py list <url1> <url2> |
|
|
|
|