เป็นตัวดักจับ GraphQL ที่ใช้งานง่ายและใช้งานง่าย ซึ่งจะตรวจสอบข้อมูลที่แคชไว้ จัดการการกลายพันธุ์ด้วย PouchDB และส่งเฉพาะคำสั่งที่แก้ไขหรือไม่ใช่แคชไปยังเซิร์ฟเวอร์เท่านั้น ข้อมูลที่ส่งคืนจะถูกแคชไว้สำหรับคำขอในอนาคต
bun install bundl-server
bun install bundl-cache
ดึงข้อมูลจากแคชในเครื่องด้วยความเร็วสูง
- ที่เก็บข้อมูลในหน่วยความจำ: เข้าถึงข้อมูลที่ใช้บ่อยได้อย่างรวดเร็ว
- พื้นที่จัดเก็บข้อมูลบนดิสก์: เหมาะสำหรับชุดข้อมูลขนาดใหญ่ที่ไม่พอดีกับหน่วยความจำ
- Time-to-Live (TTL): การลบข้อมูลเก่าโดยอัตโนมัติตามเวลาหรือขนาดที่จำกัด
ผสานรวมกับฐานข้อมูลทั้งเชิงสัมพันธ์และเชิงเอกสารได้อย่างราบรื่น
- รองรับ SQL: เชื่อมต่อกับฐานข้อมูล MySQL, PostgreSQL และ SQLite ได้อย่างง่ายดาย
- รองรับ NoSQL: ตัวเลือกสำหรับการผสานรวมกับ MongoDB, Redis และฐานข้อมูล NoSQL อื่นๆ
- การซิงค์กับ PouchDB และ CouchDB เพื่อให้สามารถเข้าถึงข้อมูลแบบออฟไลน์
ช่วยให้มั่นใจ
- Lazy Loading: ดึงข้อมูลเฉพาะที่จำเป็น ช่วยลดเวลาในการโหลดครั้งแรก
- การประมวลผลเป็นชุด: ดำเนินการจำนวนมากเพื่อเพิ่มประสิทธิภาพ
- การทำดัชนี: เร่งความเร็วการดำเนินการดึงข้อมูลด้วยการจัดทำดัชนีอัจฉริยะ
- 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 Cache, PouchDB และ CouchDB
สำหรับข้อมูลเกี่ยวกับการใช้งานฝั่งไคลเอ็นต์ โปรดไปที่ bunDL Client README
เราเชื่อในพลังของโอเพ่นซอร์ส การมีส่วนร่วมกับ bunDL คุณไม่เพียงแต่สร้างผลกระทบต่อโครงการนี้ แต่ยังสนับสนุนชุมชนโอเพ่นซอร์สในวงกว้างอีกด้วย ภารกิจของเรากับ bunDL คือการสร้างเครื่องมือที่สามารถเข้าถึงได้ และทุกการมีส่วนร่วม ไม่ว่าจะเล็กหรือใหญ่ ก็ช่วยผลักดันวิสัยทัศน์นี้ไปข้างหน้า
โปรเจ็กต์นี้ bunDL เป็นความพยายามแบบโอเพ่นซอร์ส หากคุณต้องการทำความเข้าใจเส้นทางของโครงการและวิธีการมีส่วนร่วม โปรดไปที่ Demo Repository ของเรา
เร่งความเร็วโดย OS Labs และพัฒนาโดย Ken Iwane, Shi Kuang, Brandon Do, Gio Mogi และ Andrew Wicker