Сервис проверки истёкших паспортов РФ.
Базу данных можно взять по ссылке: list_of_expired_passports.csv.bz2
Сервис при загрузки разбирает всю базу и строит бинарное дерево в памяти. По этому для работы приложения требуется около 1.1 Gb памяти.
При разборе базы сервис игнорирует все записи содержащие символы, отличные от цифр.
cargo build --release
Для запуска со стандартными настройками нужно использовать следующею команду:
./target/release/expass
По умолчанию ожидается, что в рабочей папке находится файл
list_of_expired_passports.csv
. А сервер по умолчанию слушает 0.0.0.0:8000
.
Описание настрое можно получить следующей командой:
./target/release/expass --help
Сервис ожидает запросы по следующего вида:
GET /<series>/<number>
Где <series>
- серия паспорта. А <number>
- номер паспорта.
В ответ возвращается строка false
, если паспорт не найден в базе или
true
, если паспорт был найден в базе.
Например запрос можно выполнить через curl:
curl -v http://localhost:8000/0500/128883
На i5 с 2-мя ядрами сервис может обработать около 10 тысяч запросов в секунду, а база данных разбирается около 100 секунд.