Състоя се първият релийз на проекта geoip, реализиращ услуга за получаване на информация за местоположението на IP адреси чрез REST API. Проектът е насочен към опростяване на интеграцията на GeoIP функционалността в различни приложения, освобождавайки разработчиците от необходимостта да управляват сами актуализациите на базите данни и да работят с формата MMDB. Кодът е написан на езика Rust и се разпространява под MIT лиценз. Поддържа работа в Linux и macOS, както и в други UNIX-подобни системи.
Основни възможности на услугата:
- Висока производителност и ниско потребление на памет, благодарение на използването на компилиран към машинен код език без събирател на боклук.
- Предоставяне на информация за IP адреса (страна, град, пощенски код, координати, оператор на свързване и др.) чрез REST API на базата на данни MaxMind GeoLite2 (безплатно) и MaxMind GeoIP2 (платно).
- Определяне на текущия IP адреси потребител (достъпно чрез отделна крайна точка; параметър ip на основната крайна точка е незадължителен).
- Настройваеми автоматични актуализации на бази данни (както от официалните ресурси на MaxMind с използването на Account ID и Licence Key, така и от потребителски URL с поддръжка на удостоверяване; възможно е задаване на интервал на проверка на актуализациите).
- Уеб интерфейс за ръчно изпращане на заявки, включително опционална поддръжка за показване на картата OpenStreetMap.

- За всички резултати, съдържащи поле timezone, автоматично се формира допълнителното поле posix_timezone (например, Europe/Paris се преобразува в CET-1CEST,M3.5.0,M10.5.0/3). Това осигурява автоматична конфигурация на часовия пояс на вградени устройства (например, ESP32 и други мишени newlib без вградена tzdata). Тази функция е уникална и отсъства в аналогични решения.
- Автоматично обновление на базата данни за часовите пояси (интервал, източник и удостоверяване са настраиваеми; по подразбиране се използва официалния сайт на IANA). При деактивиране на актуализациите се използва системната база.
- Възможност за изтегляне на актуални архиви на бази данни по HTTP директно от услугата (което позволява използването на един екземпляр като прокси източник за други и намалява разхода на квотата на MaxMind).
- Поддръжка на защита на крайните точки чрез опционален API ключ.
- Наличие на OpenAPI спецификация и вградения Swagger UI за улеснение на интеграцията с вашите проекти.
- Предоставяне на готов Docker образ за бързо разгръщане: docker run \ -e MAXMIND_ACCOUNT_ID=XXXX \ -e MAXMIND_LICENCE_KEY=YYYY \ -e OSM_TILES_URL="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png" \ # незадължителен -v geoip_data:/data \ -p 8080:8080 \ ghcr.io/quoi-dev/geoip:latest
Източник: opennet.ru

