---
title: "Firenook – Rust Tabanlı Firebase Emülatörleri: 40 Kat Daha Hızlı Yazma, 10 Kat Daha Az RAM"
url: https://blog.edumints.com/firenook-rust-tabanli-firebase-emulatorleri-40-kat-daha-hizli-yazma-10
category: "Yazılım"
date: 2026-11-06T09:05:24.221Z
publisher: Edumints Blog
lang: tr-TR
source_name: "Hacker News"
source_url: https://firenook.dev/
---

# Firenook – Rust Tabanlı Firebase Emülatörleri: 40 Kat Daha Hızlı Yazma, 10 Kat Daha Az RAM

## Firebase Yerel Emülatör Paketi İçin Daha Hızlı Bir Alternatif

Yazılım geliştirme süreçlerinde yerel test ortamlarının hızı ve kaynak tüketimi, geliştirici deneyimini doğrudan etkiler. **Firenook** (güncel sürüm `0.2.1`), **Firebase Local Emulator Suite** için Rust ile geliştirilmiş, doğrudan mevcut yapınızın yerine geçebilen (drop-in replacement) çok daha hızlı bir alternatiftir. 

Mevcut `firebase.json` yapılandırma dosyanızı, kullandığınız SDK'ları ve port ayarlarınızı olduğu gibi koruyarak, başlatma betiğinizdeki (script) tek bir kelimeyi değiştirmeniz geçiş yapmak için yeterlidir. Üstelik sisteminize **Java** kurmanıza gerek kalmaz ve yerel verileriniz yeniden başlatmalar sonrasında bile kaybolmaz. Projeye dahil etmek için şu komutu kullanabilirsiniz:

`$ npm install --save-dev firenook`

## Performans Karşılaştırması ve Öne Çıkan Metrikler

Firenook, geleneksel emülatör paketine kıyasla üç temel metrikte çarpıcı iyileştirmeler sunar:

- **40 kat daha hızlı yazma işlemleri:** Ortanca (median) değerlerde 208.2 ms yerine sadece **5.1 ms** yazma süresi.
- **10 kat daha az bellek kullanımı:** Zirve (peak) kullanımda 22.57 GiB yerine yalnızca **2.11 GiB** RAM tüketimi.
- **Verilerle birlikte 0.59 saniyede yeniden başlatma:** Mevcut verilerinizle birlikte 30.8 saniye süren yeniden başlatma süresi **0.59 saniyeye** düşer.

## Demo-Shop Uygulaması: Başlangıç ve Servis Durumları

`firenook 0.2.0` sürümü ve **Node 24.20.0** ortamında kaydedilen `demo-shop` örneğinde, veriler `.firenook/state` dizininde saklanır. İlk başlatmada tüm emülatörler toplam **796 ms** (ikinci yeniden başlatmada ise **602 ms**) içinde hazır hale gelir. Desteklenen 5 temel servis ve yüklenme metrikleri şunlardır:

- **Firestore:** 255 ms (yeniden başlatmada 240 ms) içinde 1.207.802 doküman (sonrasında 1.207.804 doküman) ile hazır (Port: `8080`).
- **Auth:** 255 ms (yeniden başlatmada 240 ms) içinde 64.000 kullanıcı ile hazır (Port: `9099`).
- **Storage:** 255 ms (yeniden başlatmada 240 ms) içinde 5.400 nesne ile hazır (Port: `9199`).
- **Functions:** 423 ms (yeniden başlatmada 299 ms) içinde 4 fonksiyon ile hazır (Port: `5001`).
- **Pub/Sub:** 0 ms içinde 1 zamanlanmış görev (schedule) ile hazır (Port: `8085`).

Tüm servisler ayağa kalktığında yönetim konsoluna `http://127.0.0.1:4000/console` adresinden ve `4400` numaralı Hub portundan erişilebilir.

## Gerçek Zamanlı Log Takibi ve Geliştirici Çıktıları

Emülatör çalışırken terminal üzerinden HTTP isteklerini, Firestore tetiklemelerini ve hata kayıtlarını anlık olarak izlemek mümkündür. `demo-shop` çalışmasında kaydedilen 5 çağrı (4 başarılı, 1 hatalı) şu şekildedir:

- **checkout (HTTP POST / 201):** İlk çağrıda 117 ms (yeniden başlatmada 115 ms) sürede tamamlanan başarılı sipariş işlemi.
- **sendReceipt (Firestore tetiklemesi):** `orders/qXoV1oOgJ0IILQs5psZP` (ve sonrasında `EYi9LKG7xQ53eLrWktHm`) dokümanı oluşturulduğunda 6 ms içinde toplam 36 birimlik makbuzu kuyruğa alan işlem.
- **checkout (HTTP POST / 201):** İkinci çağrıda 4 ms (yeniden başlatmada 6 ms) gibi çok kısa bir sürede tamamlanan sipariş işlemi.
- **sendReceipt (Firestore tetiklemesi):** `orders/ZskDC6u3kTKSGalf4o5L` (ve sonrasında `CU0LwsLgczq054BqsEuH`) dokümanı için 1 ms (yeniden başlatmada 2 ms) sürede toplam 32 birimlik makbuzu kuyruğa alan işlem.
- **stripeWebhook (HTTP POST / 500):** `functions/index.js:24:11` konumunda, beklenen payload imzası eşleşmediği için (`No signatures found matching the expected signature for payload`) 1 ms içinde yakalanan işlenmemiş hata (Unhandled error).

## Yazılım Geliştirme ve Öğrenme Açısından Pratik Çıkarımlar

1. **Hızlı Geri Bildirim Döngüsü:** 1.2 milyondan fazla doküman ve 64.000 kullanıcı verisini saniyenin altında (`0.59 s`) yeniden yükleyebilmek, entegrasyon testlerinde ve yerel hata ayıklamada (debugging) bekleme sürelerini ortadan kaldırır.
2. **Donanım Dostu Yerel Geliştirme:** Java bağımlılığının kalkması ve RAM tüketiminin 22.57 GiB'den 2.11 GiB'ye düşmesi, sınırlı donanıma sahip bilgisayarlarda bile büyük ölçekli verisetleriyle çalışmayı mümkün kılar.
3. **Etkileşimli Terminal Deneyimi:** Terminal arayüzündeki kısayollar (`o` konsolu açma, `r` yeniden yükleme, `?` tuş takımı yardımı, `q` çıkış) ve doğrudan konsolda açılabilen (`open in console`) hata izleri, geliştiricilerin `stripeWebhook` gibi hataları anında tespit edip çözmesini kolaylaştırır.

---

**Kaynak:** Hacker News (https://firenook.dev/)
**Yayıncı:** [Edumints Blog](https://blog.edumints.com) · Alıntılarken bu URL'ye bağlantı verin: https://blog.edumints.com/firenook-rust-tabanli-firebase-emulatorleri-40-kat-daha-hizli-yazma-10
