직관적이고 얇은 GraphQL 인터셉터로, 캐시된 데이터를 확인하고, PocketDB로 변형을 처리하며, 수정되거나 캐시되지 않은 쿼리만 서버에 보냅니다. 그런 다음 반환된 데이터는 향후 요청을 위해 캐시됩니다.
bun install bundl-server
bun install bundl-cache
매우 빠른 속도로 로컬 캐시에서 데이터를 검색합니다.
? 인메모리 스토리지: 자주 사용하는 데이터에 빠르게 액세스합니다.
? 디스크 기반 스토리지: 메모리에 맞지 않는 대규모 데이터 세트에 적합합니다.
? TTL(Time-to-Live): 시간 또는 크기 제약에 따라 오래된 데이터를 자동으로 제거합니다.
관계형 및 문서 기반 데이터베이스와 완벽하게 통합됩니다.
? SQL 지원: MySQL, PostgreSQL 및 SQLite 데이터베이스에 쉽게 연결할 수 있습니다.
? NoSQL 지원: MongoDB, Redis 및 기타 NoSQL 데이터베이스와 통합하기 위한 옵션입니다.
? 데이터에 대한 오프라인 액세스를 제공하기 위해 파우치DB 및 CouchDB와 동기화
보장
? 지연 로딩: 필요한 데이터만 가져오므로 초기 로드 시간이 단축됩니다.
? 일괄 처리: 효율성 향상을 위해 대량 작업을 수행합니다.
? 인덱싱: 지능형 인덱싱을 통해 데이터 검색 작업 속도를 높입니다.
? RESTful API: 다른 서비스와 쉽게 통합됩니다.
? 데이터 검증: 데이터 무결성을 보장하는 강력한 검증 메커니즘입니다.
? 실시간 분석: 다양한 지표를 실시간으로 추적합니다.
데이터를 JSON 객체로 캐싱하기 위해 Redis Stack을 사용합니다. 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 캐시, 파우치DB 및 CouchDB 스타일 데이터베이스에서 가장 잘 작동합니다.
클라이언트 측 구현에 대한 자세한 내용은 bunDL 클라이언트 README를 참조하세요.
우리는 오픈소스의 힘을 믿습니다. bunDL에 기여함으로써 귀하는 이 프로젝트에 영향을 미칠 뿐만 아니라 더 넓은 오픈 소스 커뮤니티를 지원하게 됩니다. bunDL에 대한 우리의 임무는 접근 가능한 도구를 만드는 것이며 크든 작든 모든 기여가 이 비전을 추진합니다.
이 프로젝트인 bunDL은 오픈 소스 노력입니다. 우리 프로젝트의 여정과 기여 방법을 이해하고 싶다면 데모 저장소를 방문하세요.
OS Labs에서 가속화하고 Ken Iwane, Shi Kuang, Brandon Do, Gio Mogi 및 Andrew Wicker가 개발했습니다.