は直観的でスリムな GraphQL インターセプターで、キャッシュされたデータをチェックし、PouchDB で変更を処理し、変更されたクエリまたはキャッシュされていないクエリのみをサーバーに送信します。返されたデータは、今後のリクエストに備えてキャッシュされます。
bun install bundl-server
bun install bundl-cache
ローカルキャッシュから超高速でデータを取得します
?インメモリストレージ: 頻繁に使用されるデータへの高速アクセス。
?ディスクベースのストレージ: メモリに収まらない大規模なデータセットに適しています。
? Time-to-Live (TTL): 時間またはサイズの制約に基づいて古いデータを自動的に削除します。
リレーショナル データベースとドキュメント ベースのデータベースの両方とシームレスに統合します。
? SQL サポート: MySQL、PostgreSQL、SQLite データベースに簡単に接続します。
? NoSQL サポート: MongoDB、Redis、およびその他の NoSQL データベースと統合するためのオプション。
? PouchDB および CouchDB と同期してデータへのオフライン アクセスを提供する
保証します
?遅延読み込み: 必要なデータのみをフェッチし、初期読み込み時間を短縮します。
?バッチ処理: 効率を向上させるために一括操作を実行します。
?インデックス作成: インテリジェントなインデックス作成により、データ取得操作を高速化します。
? RESTful API: 他のサービスと簡単に統合できます。
?データ検証: データの整合性を保証する堅牢な検証メカニズム。
?リアルタイム分析: さまざまな指標をリアルタイムで追跡します。
データを JSON オブジェクトとしてキャッシュするために Redis スタックを利用します。 Redis スタックは個別にインストールする必要があります。インストール手順については、Redis Web サイトのこちらをご覧ください。
npm install -g bun
bun install bundl-server
サーバー ファイルが格納されているルート ディレクトリ フォルダーでターミナル コマンド ラインを開きます。
次のコマンドを実行します。
touch .env # will create a new `.env` file if one doesn't exist
echo " QUERY= " [enter your query here] " " >> .env
たとえば、GraphQL スキーマが次のようになっているとします。
query samplePokeAPIquery {
pokemon_v2_pokemon_by_pk ( id : ) {
name
id
height
base_experience
weight
pokemon_v2_pokemonsprites {
id
pokemon_id
sprites
}
}
}
QUERY="[...]"
の入力は次のようになります。
touch .env // This will create a new ` .env ` file if one doesn ' t exist
echo "QUERY="{ pokemon_v2_pokemon_by_pk(id: ) { name id height base_experience weight pokemon_v2_pokemonsprites { id pokemon_id sprites } } }"" >> .env
GraphQL、LRU キャッシュ、PouchDB、および CouchDB スタイルのデータベースで最適に動作します。
クライアント側の実装については、bunDL クライアントの README を参照してください。
私たちはオープンソースの力を信じています。 bunDL に貢献することで、このプロジェクトに影響を与えるだけでなく、より広範なオープンソース コミュニティをサポートすることになります。 bunDL での私たちの使命は、アクセスしやすいツールを作成することであり、大小を問わずあらゆる貢献がこのビジョンを前進させます。
このプロジェクト bunDL は、オープンソースの取り組みです。私たちのプロジェクトの道のりと貢献方法を理解したい場合は、デモ リポジトリにアクセスしてください。
OS Labs によって加速され、Ken Iwane、Shi Kuang、Brandon Do、Gio Mogi、Andrew Wicker によって開発されました。