このプロジェクトについて
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クライアントライブラリとも互換性があります。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.