1 puan yazan oakhex 4 시간 전 | Henüz yorum yok. | WhatsApp'ta paylaş

Bun uygulamalarında Redis tarzı API ve pub/sub gerektiğinde ama ayrı bir Redis sunucusu işletmek istemediğiniz durumlar için bir proje.

Sadece standart Bun.RedisClient bağlantı URL’sini bu sunucuya yönlendirmeniz yeterli; kodu değiştirmeden olduğu gibi çalışır. Redis kurulumu da yok, native bağımlılık da yok. Veriler SQLite dosyasında (WAL) kalıcı olarak saklanır ve yeniden başlatma sonrasında da yaşamaya devam eder; okumalar ise bellek içi hot cache ile hızlandırılır.

Temel noktalar

  • 0 bağımlılık — bun:sqlite, Bun.listen tamamen Bun yerleşik özellikleri. Ayrı kurulum gerekmez
  • Kalıcılık — veriler tek bir SQLite dosyasında saklanır, yeniden başlatma sonrası korunur
  • Cold start ~13ms — veri boyutundan bağımsızdır (Redis’in RDB/AOF yeniden oynatmasından farklı olarak açılışta veri replay yoktur)
  • Hot cache — write-through + uyarlamalı idle eviction + LRU byte üst sınırı. Cache yalnızca okuma hızlandırması içindir; asıl gerçek kaynak her zaman SQLite’tır
  • 3 çalışma biçimi — süreç içi embed / sidecar spawn / bağımsız daemon (bunx)

Kullanım örneği

import { RedisClient } from "bun";
import { embedServer } from "bundis";

const server = embedServer({ dbPath: "./data.db" });
const client = new RedisClient(server.url);
await client.set("k", "v");

Açıkça hedeflenmeyenler

  • Bun dışındaki runtime’lar (Node.js/Deno vb.) ve Bun.RedisClient dışındaki istemciler (ioredis, node-redis, redis-py vb.) desteklenmez. Güvence kapsamı wire contract’tır ("doğru baytlar gelirse doğru baytlarla yanıt verir")
  • Redis Cluster/Sentinel, çoklu süreçlerin .db paylaşması, HA/failover kapsam dışıdır (tek writer varsayımı)
  • Lua scripting (EVAL), list/sorted-set komut grupları henüz uygulanmadı (planlanıyor)

Amaç arayüz uyumluluğudur, Redis performansının bir klonunu yapmak değil. Throughput tarafında Redis üstündür; Bundis’in sunduğu değer ise "Redis kurmadan Bun içinde disk kalıcılığı + Redis API" şeklindeki operasyonel kolaylıktır. Performans rakamları, gerçek Bun.RedisClient ile loopback TCP üzerinden ölçülen uyumluluk yolu benchmark’larıdır; metodoloji ile before/after değerleri depodaki PERFORMANCE.md içinde açıkça paylaşılmıştır.

GitHub: https://github.com/Munsunty/bundis
Kurulum: bun add bundis

Henüz yorum yok.

Henüz yorum yok.