· kaynak dev.to (home feed)
Tinbase, Postgres 17'yi ve Supabase uyumlu katmanları 58 MB'lık bir ikili dosyada 2,5 saniyelik önyüklemeyle sunuyor
dev.to'da yayımlanan bir yazı, gerçek Postgres 17'yi Supabase uyumlu auth, realtime ve edge function katmanlarıyla çalıştıran, yaklaşık 100 MB RAM ile bekleyen ve 2,5 saniyede soğuk başlayan MIT lisanslı tek bir ikili dosya olan Tinbase'i tanıtıyor

dev.to'nun ana akışında yayımlanan bir yazı, gerçek PostgreSQL 17'yi Supabase uyumlu auth, realtime ve edge function katmanlarıyla birlikte çalıştıran MIT lisanslı tek bir ikili dosya olan Tinbase'i tanıtıyor. Projede çalıştığını belirten yazar, ikili dosyanın yaklaşık 58 MB olduğunu, kabaca 100 MB RAM ile beklediğini ve yaklaşık 2,5 saniyede soğuk başladığını bildiriyor. Karşılaştırma için, aynı 8 GB'lık MacBook Air üzerinde Docker tabanlı bir Supabase yığını 12 container'a yayılıyor, boştayken yaklaşık 1,6 GB RAM kullanıyor ve soğuk başlatma yaklaşık 45 saniye sürüyor. Proje Supabase ile bağlantılı değil ve barındırılan platformun yerini almak yerine supabase-js istemci sözleşmesini hedefliyor; güncel sürüm 0.9.4 ve kaynak kodu GitHub'da tinbase-dev/tinbase adresinde.
Tek süreçte gerçek Postgres
macOS ve Linux'ta kurulum tek bir curl betiğiyle yapılıyor; Windows kullanıcıları ise releases sayfasından bir çalıştırılabilir dosya indiriyor. Bir veri diziniyle tinbase start komutu çalıştırıldıktan sonra 8080 portunda bir HTTP uç noktası dinliyor ve Postgres standart 5432 portundan yanıt veriyor. Sıcak yeniden başlatmaların yaklaşık 800 milisaniye sürdüğü bildiriliyor.
Yazı, neyin çalıştığı konusunda açık: PGlite değil — yani istemci-sunucu mekanizması çıkarılmış Postgres'in WASM derlemesi değil — ve bir Postgres tel adaptörünün arkasında SQLite da değil, bizzat PostgreSQL 17.1. psql üzerinden tek satırlık bir select version(); sorgusu bunu doğruluyor.
Vektör gömmeleri için pgvector, bulanık metin eşleştirmesi için pg_trgm, sorgu profilleme için pg_stat_statements, ayrıca unaccent, pgcrypto ve uuid-ossp gibi bir dizi uzantı varsayılan olarak etkin geliyor. Geri kalan her şey sıradan create extension ifadesiyle yükleniyor.
Supabase istemcisiyle uyumluluk
Mevcut Supabase kullanıcılarına yapılan ana vaat, uygulama kodunun olduğu gibi kalması. SUPABASE_URL'yi localhost:8080'e, başlangıçta yazdırılan anon anahtarıyla birlikte yönlendirin; mevcut supabase-js çağrıları — signInWithPassword ile oturum açma, tablo sorguları, functions.invoke — önceki gibi davranıyor.
Satır düzeyi güvenliğe (RLS) özel bir dikkat gösteriliyor: veritabanı gerçek Postgres olduğundan, Tinbase'in auth katmanının sağladığı auth.uid()'ye dayanan politikaların yerelde geçmesi ve barındırılan Supabase'te de aynı şekilde davranması gerekiyor.
Edge function'lar Deno alt süreci yerine gömülü bir V8 motorunda çalışıyor; bildirilen soğuk başlama süresi yaklaşık 15 milisaniye ve Supabase Edge Functions ile aynı HTTP arayüzünü sunuyor. Realtime bileşeni, Supabase realtime spesifikasyonunun Go ile yazılmış bir uygulaması olup Postgres'in mantıksal replikasyon akışını okuyor; böylece kanal abonelikleri ve postgres_changes yükleri istemcilere birebir aynı görünüyor.
Geçiş yolu ve mevcut eksikler
Mevcut bir projeyi taşımak, döküm-yükleme akışıyla yapılıyor: supabase db dump ile bir dosyaya alın, ardından tinbase import çalıştırın. İçe aktarıcı, henüz desteklemediği Supabase'e özgü uzantılar ya da kancalar konusunda uyarıyor ve içe aktarma komutunun yanında bir uyumluluk matrisi belgelenmiş — bir öğleden sonranızı adamadan önce kontrol etmeye değer.
Yazar, Docker kurulumunun hâlâ nerede üstün olduğu konusunda açık sözlü. Henüz yerel bir dashboard yok; bir tinbase studio planlanıyor ama henüz yayınlanmadı. Storage, Supabase Storage'ın dinamik görüntü dönüştürmeleri olmaksızın sıradan dosya sistemi okuma ve yazma işlemlerinden ibaret. Ve container yığınının ayak izini makineleri rahatça kaldıran ekiplerin düzeltmesi gereken bir şey yok.
Neden önemli
Yerel Supabase geliştirmesi sessizce ağırlaştı: her dizüstü bilgisayarda ve her CI işinde çalışan yığın, container, bellek ve önyükleme süresi cinsinden sabit bir vergi ödüyor. Bunu kabaca 100 MB bellekle bekleyen ve saniyeler içinde başlayan tek bir ikili dosyaya indirgemek, kısıtlı dizüstü bilgisayarlarda, CI çalıştırıcılarında ve atölye ortamlarında neyin pratik olduğunu değiştiriyor.
Uyarılar da aynı ağırlığı hak ediyor. Yukarıdaki her rakam, projede çalışan biri tarafından, tek bir dizüstü bilgisayarda ölçülerek bildirildi ve yazılım 0.9.x sürümünde. Bağımsız kıyaslamalar ve üretim benzeri projelerden raporlar henüz ortaya çıkmadı. Yine de belirleyici etken uyumluluk iddiası: RLS, auth ve realtime gerçekten barındırılan sözleşmeyle eşleşiyorsa, yerel ve üretim ortamları arasındaki alışılmış sapma küçülür ve Docker bir zorunluluk olmaktan çıkıp bir tercih haline gelir.
- #postgres
- #supabase
- #docker
- #local-development
- #open-source
İlgili yazılar
- RustFS, kendi sunucunuzda barındırabileceğiniz S3 uyumlu depolama için tek komutluk Docker Compose kurulumu sunuyor
- Portainer 3.0 Community Edition'ı rafa kaldırdı, Docker self-host kullanıcılarını alternatiflere itiyor
- Cloudflare Workers AI'nin Ücretsiz Katmanında Yaklaşık İki Düzine Açık Kaynak LLM Çalışıyor