Выпущен geoip 0.1 — self-hosted GeoIP REST API на Rust Обложка: Skyread

Выпущен geoip 0.1 — self-hosted GeoIP REST API на Rust

Новости
Главное:

  • Выпущена версия 0.1 сервиса geoip — открытого self-hosted GeoIP REST API, написанного на языке Rust и распространяемого под лицензией MIT.
  • Сервис упрощает интеграцию GeoIP-данных в приложения, поддерживает автоматическое обновление баз MaxMind и работу на UNIX-подобных ОС.
  • Уникальной особенностью является преобразование временной зоны в формат posix_timezone, что полезно для встроенных систем без tzdata.

Недавно состоялся релиз geoip 0.1 — первого рабочего выпуска self-hosted GeoIP REST API, разработанного на языке программирования Rust. Проект опубликован на GitHub под лицензией MIT и призван облегчить интеграцию геоинформационных сервисов на основе IP-адресов в собственные приложения.

Geoip выступает в качестве абстракции для работы с базами данных MaxMind GeoLite2 (бесплатная версия) и MaxMind GeoIP (платная версия), предоставляя единый API для получения данных об IP-адресах: страна, город, почтовый индекс, географические координаты, оператор связи и прочие сведения. Сервис поддерживает работу на платформах Linux и Mac OS X, а также на других UNIX-подобных системах, при этом Windows-поддержка ограничена (функционал работы с часовыми поясами доступен через WSL).

Одной из ключевых особенностей является возможность получения текущего IP-адреса клиента через отдельный эндпоинт, а также опциональное указание IP в основном API запросе. Система автоматического обновления баз данных позволяет скачивать актуальные данные как с официальных URL MaxMind, используя предоставленные учетные данные, так и с пользовательских источников, включая возможность авторизации и задания интервалов обновлений.

Отдельно стоит отметить уникальную функцию преобразования временных зон из стандартного формата (например, Europe/Paris) в формат posix_timezone, что важно для поддержки встроенных систем с ограниченной инфраструктурой времени, таких как ESP32 и другие устройства на newlib. База данных часовых поясов также обновляется автоматически, либо при отключении обновлений — используется системная версия из операционной системы.

Для удобства пользователей и разработчиков сервис предлагает веб-интерфейс с поддержкой OpenStreetMap, API с защитой через ключи, OpenAPI спецификацию и Swagger UI для упрощенной интеграции. Запуск сервиса упрощен за счет готового Docker-образа. Также возможно проксирование архивов баз данных через сервис, что позволяет экономить квоты на использование MaxMind.

Демонстрационная версия geoip доступна онлайн, что дает возможность оценить функциональность без установки. Такой инструмент будет полезен разработчикам, желающим внедрить геолокационные данные в свои проекты с гибким управлением обновлениями и автономным хостингом.

Tagged