19 puan yazan GN⁺ 2026-01-02 | 1 yorum | WhatsApp'ta paylaş
  • OpenWorkers, V8 tabanında JavaScript çalıştıran açık kaynak bir runtime olup edge computing’i kendi altyapınızda kurmanıza olanak tanır
  • KV deposu, PostgreSQL, S3/R2 uyumlu depolama, service binding, ortam değişkenleri ve secret’lar desteklenir
  • fetch, ReadableStream, crypto.subtle gibi başlıca Web API’lerini içerir ve Cloudflare Workers ile yüksek uyumluluk sağlar
  • V8 Isolate sandbox, cron zamanlama, Docker Compose tabanlı dağıtım gibi özelliklerle kolay self-hosting mümkündür
  • Yaklaşık 7 yıldır gelişen proje, vendor lock-in olmadan bir JavaScript çalışma ortamı sunmayı hedefliyor

OpenWorkers genel bakış

  • OpenWorkers, Rust ile yazılmış Cloudflare Workers uyumlu bir runtime olup JavaScript’i V8 Isolate kullanarak çalıştırır
    • Edge computing’in avantajları, kendi sunucu ortamınızda da kullanılabilir
    • Açık kaynak olarak yayımlandığı için özgürce dağıtılabilir ve değiştirilebilir

Başlıca özellikler

  • Bindings özelliği sayesinde çeşitli harici kaynaklarla entegre olur
    • KV depolama: get, put, delete, list desteği
    • PostgreSQL veritabanı entegrasyonu
    • S3/R2 uyumlu depolama desteği
    • Service binding, ortam değişkenleri ve secret yönetimi içerir
  • Web API desteği
    • fetch, Request, Response, ReadableStream gibi standart API’ler sunar
    • crypto.subtle, TextEncoder/Decoder, Blob, setTimeout, AbortController dahildir

Mimari

  • Sistem; nginx proxy, dashboard, API, log service, runner, PostgreSQL, NATS, scheduler gibi bileşenlerden oluşur
    • Her runner, kodu V8 Isolate içinde çalıştırır ve 100 ms CPU, 128 MB bellek sınırı uygular
    • 5-6 alanlı cron sözdizimini destekleyen yerleşik bir scheduler içerir
    • Cloudflare Workers ile sözdizimi uyumluluğu korunur

Self-hosting

  • Dağıtım, yalnızca tek bir PostgreSQL veritabanı ve Docker Compose dosyası ile yapılabilir
    • git clone, .env ayarı ve docker compose up komutlarıyla kolayca çalıştırılabilir
    • Migration ve token oluşturma adımları da dahildir

Geliştirme geçmişi

  • Proje, yaklaşık 7 yıllık bir geliştirme sürecinin ardından olgunlaştı
    • İlk aşamada JS sandboxing için vm2 ile denemeler yapıldı, ardından Cloudflare Workers modelinden ilham alınarak geliştirildi
    • Deno-core sonrasında bugün rusty_v8 tabanında yeniden yazıldı
  • Hedef, Cloudflare Workers düzeyinde bir geliştirici deneyimi (DX) sunarken vendor lock-in’i ortadan kaldıran, kendi sunucunuzda çalışan bir ortam kurmak
  • İleride çalıştırma kayıtları ve yeniden oynatma üzerinden deterministic debugging özelliğinin eklenmesi planlanıyor

1 yorum

 
GN⁺ 2026-01-02
Hacker News görüşleri
  • Uç bilişimin gücünü kendi altyapına taşımak fikri ilginç görünüyor
    Ancak self-hosting'in, uç bilişimin özüyle bir ölçüde çeliştiğini düşünüyorum
    Bu model, Cloudflare gibi dünya çapında 300'den fazla PoP (Point of Presence) bulunduran büyük sağlayıcılar sayesinde mümkün oluyor
    Elbette daha küçük ve etik sağlayıcıları bir araya getirerek benzer bir yapı kurulabilir, ama bu çok daha fazla emek ve risk getirir

    • Uç modelinin avantajlarını elde etmek için gerçekten 300 PoP gerekip gerekmediğinden emin değilim
      Başlıca bölgelerde 10 kadar nokta olsa bile yeterli olmaz mı diye düşünüyorum
    • Cloudflare'in tekelini kırmak için dağıtık bir barındırma ağının iş birliği yaptığı bir model mümkün mü diye merak ediyorum
      Ama bunu güvenli ve güvenilir şekilde koordine etmenin fazla zor olabileceği konusunda da endişeliyim
  • Sandbox çözümlerindeki sorun, kodun sandbox'tan çıkamayacağına dair güçlü bir garanti vermeleri gerekmesidir
    Bunu kanıtlamak için çeşitli saldırı senaryolarına karşı test sonuçları ve ayrıntılı belgeler gerekir
    Ama bu seviyede dokümantasyon çok nadirdir ve gerçekten güvenilir örnekler bulmak zordur
    Bu yüzden ben, büyük şirketlerin bunu gerçek production ortamında kullanıp kullanmadığına ve güvenlik ekipleri tarafından bakımının yapılıp yapılmadığına bakıyorum

    • Ben de katılıyorum. Yapay zeka verimliliği artırıyor olabilir ama yüksek güvenlikli ortamlarda “Claude'un yardımıyla rusty_v8 üzerinde yeniden yazdık” ifadesi beni daha çok endişelendiriyor
    • Cloudflare Workers runtime'ının güvenli olmasının nedenlerinden biri, V8 ana dalıyla senkronizasyonu çok agresif biçimde sürdürmesidir
      Hatta bazen V8 sürümlerini Chrome'dan bile önce uygular
    • V8 isolate bellek izolasyonu sağlar ve CPU (100ms) ile bellek (128MB) sınırları koyar
      Her worker ayrı bir süreç yerine bir isolate olarak çalışır; bu da Cloudflare modeline benzer
      Ancak tamamen güvenilmeyen üçüncü taraf kodlarla uğraşırken container veya VM ile bir katman daha izolasyon eklemek daha iyidir
      Bu sandbox yaklaşımı güvenlikten çok kaynak izolasyonuna odaklanır
    • Böyle kusursuz garantiler istemenin gerçekçi olmadığını düşünüyorum
      “Doğruladık ve güvenli, bize güvenin” seviyesindeki güvenlik denetimleri yeterli değil
    • Cloudflare'de kullanıcı kodu kötü niyetli olabileceğinden sandbox güvenliği şarttır,
      ama self-hosting ortamında zaten sisteme erişim yetkiniz olduğu için sandbox'tan kaçış konusunda kaygı duymaya daha az gerek vardır
  • Harika bir proje olduğunu düşünüyorum
    workerd açık kaynaksa, OpenWorkers'ın farkının tam bir ortam sunması olup olmadığını merak ediyorum
    Runtime'ın kendisinde ne gibi farklar olduğu ya da ileride managed service planı bulunup bulunmadığını da öğrenmek isterim

    • Üç temel fark var
      1️⃣ workerd yalnızca runtime sağlar, OpenWorkers ise dashboard, API, scheduler, loglar, binding'ler (KV, S3/R2, Postgres) dahil tam bir platform sunar
      2️⃣ workerd C++ tabanlıdır, OpenWorkers ise Rust + rusty_v8 tabanlıdır; bu da onu daha sade ve hacklenmesi daha kolay yapar
      3️⃣ Zaten dash.openworkers.com üzerinde managed bir sürüm var ve ücretsiz katman da sunuluyor
      Ancak self-hosting birinci sınıf vatandaş olarak tasarlanmış durumda
  • Cloudflare Workers'ın özü fonksiyon başına ücretlendirme iken, self-hosting yapıldığında sonuçta donanımı önceden temin etmek gerekir

    • Hâlâ birçok şirket kendi veri merkezi sunucularını işletiyor
      Her şeyi dış kaynağa vermek zorunda değilsiniz; benzer seçeneklerin var olması iyi bir şey
      Bu tür seçenekler benimsenme eşiğini düşürmeye yardımcı olur
  • Eskiden deno_core'u ayırma işiyle çok uğraşmıştım; raw rusty_v8'e geçişi anlıyorum
    deno_core içinde çok fazla legacy kod vardı ve bir şeyi değiştirince testler sık sık bozuluyordu

    • Teşekkürler! deno_core hâlâ harika bir kod tabanı, bu yüzden openworkers-runtime-deno olarak bakımını sürdürüyoruz
      Ama runtime içini daha ayrıntılı kontrol edebilmek için rusty_v8'e geçtik,
      ileride deno runtime'a da eksik özellikleri yeniden eklemeyi planlıyoruz
  • Vendor lock-in'i azaltmaya yardımcı olan her projeden yanayım
    Bulut hizmetlerinin fiyatlarını daha gerçekçi seviyelere çekmeleri için baskı görmesini isterim
    Şu anda NAT gibi temel özellikler için bile aşırı ücret talep ediliyor
    Elbette bulut kullanışlı, ama sorun DIY'ye kıyasla yüksek maliyet

    • Cloudflare Workers runtime zaten açık kaynak: cloudflare/workerd
    • Son dönemde RAM fiyatlarının artması self-hosting'i daha da zorlaştırır mı diye endişeleniyorum
      Büyük şirketler kaynakları tekeline alırsa bireylerin kendi başına barındırma yapması zorlaşabilir
    • NAT maliyetinin “ücretsizden pahalı” diye ifade edilmesi ilginç
      Ama gerçekte birçok ülkede kendi başına işletme maliyeti daha yüksek
      Mesele yalnızca kurmak değil; bakım personeli ve izleme maliyetleri de ciddi tutar
  • Şu anda çalışmayan özelliklerin veya yol haritasının belgelerde açıkça belirtilmesi iyi olur

    • İyi öneri! Henüz uygulanmamış özellikler Durable Objects, WebSockets, HTMLRewriter ve cache API
      Sonraki öncelik debug için execution trace/replay özelliği ve belgelere bir yol haritası bölümü eklemeyi planlıyoruz
  • ASCII mimari diyagramı Pixel + Firefox'ta bozuk görünüyor
    Metin tabanlı diyagramlar çekici olsa da pratikte görüntüye derlenmiş bir sürüm yayımlamak daha kullanışlı oluyor

    • Bildirim için teşekkürler! Mobil için sadeleştirilmiş bir ASCII sürümü ekleyerek düzelttim
    • Benim iPhone 11 Safari'mde kusursuz görünüyor
  • Teknik ve yapısal olarak harika bir ürün fikri
    Özellikle büyük sağlayıcının açık kaynak projesine karşılık yine açık kaynakla cevap verme modeli hoşuma gidiyor
    Yani onların açık kaynağı alıp ticarileştirmesi yerine, biz onların modelini tekrar açık kaynak olarak geri veriyoruz — bence doğru yaklaşım tam olarak bu

  • “Bulutu kendi bilgisayarımızda barındırsak nasıl olur?” akımı geri dönmüş gibi görünüyor
    Son dönemde bu tür bir self-hosting trendi birkaç yerde göze çarpıyor
    İlgili sunum videosu da ilgi çekici

    • Ama bence buna artık “bulut” demek zor
      Bulutun özü **esneklik (elasticity)**tir
      Gerektikçe instance sayısını artırıp azaltabilmek ve yalnızca kullandığın kadar ödemek üzerine kurulu bir yapıdır
      Self-hosting'de dağıtım araçları kullanışlı olabilir ama sonuçta tüm sunucu maliyetini üstlenmek gerekir
      Yük sabit ya da öngörülebilirse sorun olmayabilir ama aksi halde verimsizdir
      (Bir benzetme yaparsak, otobüse binmekle bir van sahibi olmak arasındaki fark gibi)
    • FaaS (Function-as-a-Service) değerini “bulut” kelimesinden değil, olay odaklı bir framework sunmasından alır
      Geliştiriciler olay işleyicilerini yazmaya odaklanabilir; kuyruklar veya dayanıklı yürütme de eklenirse daha da güçlü olur
      Sonuçta FaaS, boilerplate kodu soyutlayan yüksek seviyeli bir araçtır