Byl vydán první release projektu geoip, který realizuje službu pro získání informací o poloze IP adres přes REST API. Projekt je zaměřen na zjednodušení integrace GeoIP funkcionality do různých aplikací, čímž osvobozuje vývojáře od nutnosti spravovat aktualizace databází a pracovat s formátem MMDB. Kód je napsán v programovacím jazyce Rust a je šířen pod licencí MIT. Podporována je práce v Linuxu a macOS, stejně jako v dalších systémech podobných UNIXu.
Hlavní funkce služby:
- Vysoký výkon a nízká spotřeba paměti díky použití kompilovatelného do strojového kódu jazyka bez garbage collectoru.
- Poskytování informací o IP adrese (stát, město, PSČ, souřadnice, poskytovatel služby a další) přes REST API na základě dat MaxMind GeoLite2 (zdarma) a MaxMind GeoIP2 (placeně).
- Určení aktuálního IP adres uživatele (dostupné přes samostatný endpoint; parametr ip hlavního endpointu je volitelný).
- Konfigurovatelné automatické aktualizace databází (jak z oficiálních zdrojů MaxMind s použitím ID účtu a Licence Key, tak z uživatelského URL s podporou autorizace; je možné zadat interval kontroly aktualizací).
- Webové rozhraní pro ruční odesílání požadavků, včetně volitelné podpory zobrazení na mapě OpenStreetMap.

- Pro všechny výsledky obsahující pole timezone je automaticky generováno další pole posix_timezone (například Europe/Paris se přetvoří na CET-1CEST,M3.5.0,M10.5.0/3). To zajišťuje automatickou konfiguraci časového pásma na vestavěných zařízeních (například ESP32 a dalších cílech newlib bez vestavěného tzdata). Tato funkce je unikátní a v podobných řešeních chybí.
- Automatické aktualizace databáze časových pásem (interval, zdroj a autorizace jsou konfigurovatelné; výchozím zdrojem je oficiální stránka IANA). Při vypnutí aktualizací se používá systémová databáze.
- Možnost stahování aktuálních archívů databází přes HTTP přímo ze služby (což umožňuje použít jednu instanci jako proxy zdroj pro ostatní a snižovat plýtvání limitem MaxMind).
- Podpora ochrany endpointů pomocí volitelného API klíče.
- Přítomnost OpenAPI specifikace a vestavěného Swagger UI pro usnadnění integrace do vašich projektů.
- Poskytnutí hotového Docker obrazu pro rychlé nasazení: 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" \ # volitelné -v geoip_data:/data \ -p 8080:8080 \ ghcr.io/quoi-dev/geoip:latest
Zdroj: opennet.ru

