À propos du projet
Tile38 est un serveur open-source (sous licence MIT) de stockage de données géospatiales en mémoire, d'indexation spatiale et de géorepérage en temps réel. Il prend en charge divers types d'objets, notamment les points lat/lon, les boîtes englobantes, les tuiles XYZ, les Geohashes, les QuadKeys et le GeoJSON.
Les fonctionnalités clés incluent :
- Index spatial avec méthodes de recherche telles que Nearby, Within et Intersects
- Géorepérage en temps réel via des webhooks ou des canaux pub/sub
- Prise en charge de plusieurs protocoles : HTTP, websockets, telnet et Redis RESP
- Réponses serveur au format RESP ou JSON
- Interface en ligne de commande complète (tile38-cli)
- Réplication leader/follower
- Base de données en mémoire avec persistance sur disque
- Exportation de métriques Prometheus
Le système se compose de trois composants : tile38-server (le serveur), tile38-cli (interface en ligne de commande) et tile38-benchmark (outil de benchmark du serveur).
Tile38 peut être déployé via des binaires précompilés pour OSX, Linux, FreeBSD et Windows, Docker, ou Homebrew sur macOS. Le code source est entièrement écrit en Go et prend en charge les systèmes 32 bits et 64 bits.
Les capacités de recherche incluent le filtrage par valeurs de champs (WHERE), la correspondance d'ID d'objet (MATCH), l'itération basée sur curseur, l'exclusion de champs (NOFIELDS) et la limitation des résultats (LIMIT). Les expressions WHERE prennent en charge la correspondance par expressions régulières utilisant le moteur re2 de Go.
Le géorepérage permet de convertir toute recherche standard en moniteur de géorepérage en ajoutant le mot-clé FENCE. Le serveur notifie les clients en temps réel lorsque des objets entrent, sortent ou traversent des limites, avec des types de détection incluant inside, outside, enter, exit et cross. Les notifications de géorepérage peuvent être délivrées via des webhooks ou des canaux pub/sub.
Les champs sont des données supplémentaires attachées aux objets, stockées sous forme de valeurs à virgule flottante en double précision, sans limite sur le nombre de champs par objet.
Tile38 dispose de bibliothèques clientes dédiées pour Go, Node.js, Python, TypeScript, Rust, Swift et Java, ainsi qu'une compatibilité avec la plupart des bibliothèques clientes Redis grâce à son support natif du protocole RESP.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.