このプロジェクトについて

Tile38は、オープンソース(MITライセンス)のインメモリ地理位置情報データストア、空間インデックス、リアルタイムジオフェンシングサーバーです。緯度/経度ポイント、バウンディングボックス、XYZタイル、ジオハッシュ、QuadKey、GeoJSONなど、さまざまなオブジェクトタイプをサポートしています。 主な機能は以下の通りです: - Nearby、Within、Intersectsなどの検索方法を備えた空間インデックス - Webhookまたはpub/subチャネルによるリアルタイムジオフェンシング - HTTP、WebSocket、telnet、Redis RESPなど、複数のプロトコルをサポート - RESPまたはJSON形式でのサーバーレスポンス - 完全なコマンドラインインターフェース(tile38-cli) - リーダー/フォロワーレプリケーション - ディスク永続化を備えたインメモリデータベース - Prometheusメトリクスエクスポート システムは、tile38-server(サーバー)、tile38-cli(コマンドラインインターフェース)、tile38-benchmark(サーバーベンチマークツール)の3つのコンポーネントで構成されています。 Tile38は、OSX、Linux、FreeBSD、Windows用のプリビルドバイナリ、Docker、またはmacOS上のHomebrewを使用してデプロイできます。コードベースは完全にGoで書かれており、32ビットおよび64ビットシステムをサポートしています。 検索機能には、フィールド値によるフィルタリング(WHERE)、オブジェクトIDマッチング(MATCH)、カーソルベースの反復、フィールド除外(NOFIELDS)、結果制限(LIMIT)が含まれます。WHERE式は、Goのre2エンジンを使用した正規表現マッチングをサポートしています。 ジオフェンシングでは、FENCEキーワードを追加することで、任意の標準検索をジオフェンスモニターに変換できます。サーバーは、オブジェクトが境界に入る、出る、または横切る際にリアルタイムでクライアントに通知し、検出タイプにはinside、outside、enter、exit、crossが含まれます。ジオフェンス通知は、Webhookまたはpub/subチャネルを介して配信できます。 フィールドはオブジェクトに添付される追加データであり、倍精度浮動小数点値として保存され、オブジェクトごとのフィールド数に制限はありません。 Tile38には、Go、Node.js、Python、TypeScript、Rust、Swift、Java用の専用クライアントライブラリがあり、ネイティブのRESPプロトコルサポートにより、ほとんどのRedisクライアントライブラリとも互換性があります。