/expass

Сервис проверки истёкших паспортов РФ

Primary LanguageRust

Expass

Сервис проверки истёкших паспортов РФ.

Базу данных можно взять по ссылке: 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 секунд.