是一个直观、简洁的 GraphQL 拦截器,它检查缓存的数据,使用 PouchDB 处理突变,并且仅将修改后的或非缓存的查询发送到服务器。然后,返回的数据将被缓存以供将来的请求使用。
bun install bundl-server
bun install bundl-cache
以闪电般的速度从本地缓存检索数据
?内存存储:快速访问常用数据。
?基于磁盘的存储:适用于内存无法容纳的较大数据集。
?生存时间 (TTL):根据时间或大小限制自动驱逐旧数据。
与基于关系和文档的数据库无缝集成。
? SQL 支持:轻松连接到 MySQL、PostgreSQL 和 SQLite 数据库。
? NoSQL 支持:与 MongoDB、Redis 和其他 NoSQL 数据库集成的选项。
?与 PouchDB 和 CouchDB 同步以提供对数据的离线访问
确保
?延迟加载:仅获取需要的数据,减少初始加载时间。
?批处理:执行批量操作以提高效率。
?索引:通过智能索引加快数据检索操作。
? RESTful API:与其他服务轻松集成。
?数据验证:强大的验证机制可确保数据完整性。
?实时分析:实时跟踪各种指标。
利用 Redis Stack 将数据缓存为 JSON 对象; Redis Stack需要独立安装。安装说明可以在 Redis 网站上找到。
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客户端自述文件
我们相信开源的力量。通过为bundDL做出贡献,您不仅可以对该项目产生影响,还可以支持更广泛的开源社区。我们与bundDL的使命是创建一个易于使用的工具,每一个贡献,无论大小,都推动这一愿景向前发展。
这个项目,bunDL,是一个开源项目。如果您想了解我们的项目历程以及如何做出贡献,请访问我们的演示存储库
由 OS Labs 加速,由 Ken Iwane、Shi Kuang、Brandon Do、Gio Mogi 和 Andrew Wicker 开发。