1 poin oleh oakhex 4 jam lalu | Belum ada komentar. | Bagikan ke WhatsApp

Ini adalah proyek untuk saat Anda membutuhkan API bergaya Redis dan pub/sub di aplikasi Bun, tetapi tidak ingin mengoperasikan server Redis terpisah.

Cukup arahkan URL koneksi Bun.RedisClient bawaan ke server ini, maka semuanya akan berjalan apa adanya tanpa perubahan kode. Tidak perlu instalasi Redis maupun dependensi native. Data dipersistenkan ke file SQLite (WAL) sehingga tetap ada setelah restart, dan pembacaan dipercepat dengan hot cache di memori.

Inti

  • 0 dependensi — bun:sqlite, Bun.listen semuanya bawaan Bun. Tidak perlu instalasi tambahan
  • Persistensi — data disimpan dalam satu file SQLite, tetap ada setelah restart
  • Cold start ~13ms — tidak bergantung pada ukuran data (tidak seperti pemutaran ulang RDB/AOF Redis, tidak ada replay data saat startup)
  • Hot cache — write-through + adaptive idle eviction + batas byte LRU. Cache murni untuk akselerasi baca dan SQLite selalu menjadi sumber kebenaran
  • 3 cara menjalankan — embed di dalam proses / sidecar spawn / daemon mandiri (bunx)

Contoh penggunaan

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");

Hal-hal yang jelas bukan tujuan

  • Runtime selain Bun (Node.js/Deno, dll.) dan klien selain Bun.RedisClient (ioredis, node-redis, redis-py, dll.) tidak didukung. Kontrak wire ("jika byte yang benar masuk, maka dijawab dengan byte yang benar") adalah yang dijamin
  • Redis Cluster/Sentinel, berbagi .db lintas banyak proses, HA/failover berada di luar cakupan (diasumsikan single writer)
  • Lua scripting (EVAL), kelompok perintah list/sorted-set belum diimplementasikan (direncanakan)

Tujuannya adalah kompatibilitas antarmuka, bukan kloning performa Redis. Dari sisi throughput, Redis lebih unggul; yang dijual Bundis adalah kemudahan operasional berupa "persistensi disk + API Redis di Bun tanpa instalasi Redis". Angka performa adalah benchmark jalur kompatibilitas yang diukur dengan Bun.RedisClient nyata melalui loopback TCP, dan metodologi serta angka before/after dipublikasikan di PERFORMANCE.md pada repositori.

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

Belum ada komentar.

Belum ada komentar.