A avut loc prima lansare a proiectului geoip, care implementează un serviciu pentru obținerea de informații despre locația adreselor IP prin REST API. Proiectul este orientat spre simplificarea integrării funcționalității GeoIP în diverse aplicații, eliberând dezvoltatorul de nevoia de a gestiona actualizările bazelor de date și de a lucra cu formatul MMDB. Codul este scris în limbajul Rust și este distribuit sub licența MIT. Este suportat în Linux și macOS, precum și în alte sisteme de operare de tip UNIX.
Funcționalitățile principale ale serviciului:
- Performanță ridicată și consum scăzut de memorie, datorită utilizării unui limbaj compilat în cod mașină fără colector de gunoi.
- Furnizarea de informații despre adresa IP (țară, oraș, cod poștal, coordonate, operator de telecomunicații etc.) prin REST API pe baza datelor MaxMind GeoLite2 (gratuit) și MaxMind GeoIP2 (contra cost).
- Determinarea utilizatorului curent adrese IP (disponibilă printr-un endpoint separat; parametrul ip al endpoint-ului principal este opțional).
- Actualizări automate configurabile ale bazelor de date (atât de pe resursele oficiale MaxMind utilizând Account ID și Licence Key, cât și de pe un URL personalizat cu suport pentru autorizare; se poate specifica intervalul de verificare a actualizărilor).
- Interfață web pentru trimiterea manuală a cererilor, inclusiv suport opțional pentru afișare pe harta OpenStreetMap.

- Pentru toate rezultatele care conțin câmpul timezone, se generează automat un câmp suplimentar posix_timezone (de exemplu, Europe/Paris se transformă în CET-1CEST,M3.5.0,M10.5.0/3). Aceasta asigură configurarea automată a fusului orar pe dispozitivele încorporate (de exemplu, ESP32 și alte ținte newlib fără tzdata încorporat). Această funcționalitate este unică și nu se regăsește în soluții analogice.
- Actualizarea automată a bazei de date a fusurilor orare (intervalul, sursa și autorizarea sunt configurabile; în mod implicit se utilizează site-ul oficial IANA). Atunci când actualizările sunt dezactivate, se aplică baza de date sistemică.
- Posibilitatea de a încărca arhivele actuale ale bazelor de date prin HTTP direct de la serviciu (ceea ce permite utilizarea unei singure instanțe ca proxy sursă pentru altele și reduce consumul cotei MaxMind).
- Suport pentru protejarea endpoint-urilor cu un API key opțional.
- Există o specificație OpenAPI și un Swagger UI integrat pentru a facilita integrarea cu propriile proiecte.
- Oferirea unei imagini Docker gata pregătite pentru o desfășurare rapidă: 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" \ # opțional -v geoip_data:/data \ -p 8080:8080 \ ghcr.io/quoi-dev/geoip:latest
Sursa: opennet.ro

