Lapisan lokal di depan Firebase Realtime Database

Kirim JSON ke localhost, biar kami yang bicara ke cloud

Aplikasi Anda cukup bicara ke 127.0.0.1:9026. NxfireDB meneruskan ke Firebase, menyembunyikan URL panjang, format .json, dan token auth — plus cache, antrian offline, dan realtime WebSocket lokal.

Mengapa NxfireDB Ada

Lahir dari keterbatasan — domain mahal, database berbayar mahal. Keterbatasan bukan penghalang untuk berkarya.

Tidak Ada Domain? Tidak Perlu

Aplikasi berbicara ke localhost (127.0.0.1:9026) — gratis, milik sendiri, dan selalu ada.

Tidak Mampu Database Berbayar?

Cukup tier gratis Firebase. URL panjang, format .json, dan token auth diganti satu perintah JSON sederhana.

Internet Tidak Stabil?

Antrian offline menyimpan operasi tulis lalu mengirimnya ulang saat koneksi kembali — data tidak hilang.

Komputer Restart?

Auto-start menyalakan ulang server sendiri saat komputer menyala.

Fitur

Perantara lokal C++ native — tidak menyimpan data sendiri, semua data tetap di Firebase.

Dua Gaya Operasi

Gaya path Firebase (/users/iyan) atau gaya tabel yang ramah (table+key). Alias: put/insert/select/delete.

Cache Lokal

cache_ttl menyimpan respons GET di memori — latency < 1 ms, bukan 100-300 ms ke cloud. Otomatis dibatalkan saat ada tulis.

Realtime WebSocket Lokal

Subscribe per path lewat ws://127.0.0.1:9026/ws — perubahan didorong ke aplikasi Anda tanpa koneksi langsung ke Firebase.

Antrian Offline

Tulis yang gagal disimpan ke nxfire.queue.json dan dikirim ulang otomatis saat Firebase terjangkau.

Query Lengkap

orderBy, startAt, endAt, equalTo, limitToFirst/Last, shallow — langsung dari perintah JSON Anda.

Balasan Seragam

{ ok, data, meta: latency_ms } saat sukses; { ok, error, hint } saat gagal — prediktabel di semua SDK.

Token Akses

Sejak token pertama dibuat, semua perintah wajib Bearer nxf_... — disimpan sebagai hash SHA-256, dengan role admin/user dan rotasi token.

Cara Pakai

Setup sekali, lalu lupakan bahwa Firebase ada di baliknya.

CLI — nxfire
nxfire setup      # isi project, secret, port
nxfire test       # uji koneksi ke Firebase
nxfire start      # server jalan di latar belakang
nxfire stop       # hentikan server
nxfire status     # status server & autostart
nxfire autostart  # on/off saat komputer menyala

# pantau path realtime
nxfire-watch /chat --port 9026
HTTP — 127.0.0.1:9026
{ "op": "set",    "path": "/users/iyan",
  "value": { "name": "iyan", "age": 30 } }

{ "op": "get",    "path": "/users/iyan" }
{ "op": "update", "path": "/users/iyan",
  "value": { "age": 31 } }
{ "op": "push",   "path": "/chat/room1",
  "value": { "text": "halo" } }
{ "op": "remove", "path": "/users/iyan" }

// gaya tabel yang ramah
{ "op": "insert", "table": "users",
  "keyFrom": "name", "data": { "name": "iyan" } }
Pemetaan ke Firebase REST: set→PUT · get→GET · update→PATCH · push→POST · remove→DELETE. Konfigurasi nxfire.json: project, region, api_key, secret, port (9026), cache_ttl, offline_queue.

SDK Multi Bahasa

Klien resmi siap pakai — atau tulis sendiri: protokolnya hanya HTTP + JSON.

Pythonnxfire.py
JavaScriptNode · nxfire.js
C#.NET 6+ · NxfireDb.cs
Gonxfire.go
PHPnxfire.php

Cara Pasang

Termudah lewat npm — atau unduh paket Rilis v0.2.1.

Semua paket tersedia di Releases v0.2.1. Ekstrak lalu salin isi bin/ ke folder yang ada di PATH.

Atau Lewat npm / Build dari Source

npm
npm create nxfire-app@latest

# terpasang ke folder data + masuk PATH.
# lalu buka terminal baru:
nxfire setup
nxfire start
Build dari source · CMake
cmake -S . -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config Release

# hasil: nxfire-server, nxfire-client,
# nxfire, nxfire-watch
node tests/run_all.mjs   # uji vs mock Firebase

C++ native (WinHTTP di Windows, socket di Linux) — tanpa dependensi eksternal. Uji otomatis berjalan terhadap mock Firebase lokal, tanpa kredensial asli.