- Gerçek CloudFlare Workers'ta kullanılan JavaScript/WASM runtime kodu
- Diğer ortamlara taşınabilmesi için yalnızca bir kısmı değiştirildi
- Adı, Unix sunucularındaki
-d "daemon" seçeneğinden geliyor; "worker dee" diye okunuyor
Kullanım alanları
- Workers'ı self-host etmek mümkün. Ayrıca basitçe API üzerinden kullanılabilen bir web sunucusu da. Her ortamda kolayca uygulanabilir
- Yerel geliştirme ve test için kullanılabilir
- Programlanabilir proxy (forward ve reverse). JavaScript ile istek/yanıtlar araya girilerek işlenebilir
What it is
- Server-first : Birçok JS/WASM runtime'ı genel amaçlı kullanılabilirken, workerd yalnızca sunucuya odaklanır. Özellikle de HTTP sunucusuna
- Web standard APIs : Web tarayıcılarında kullanılanlarla aynı standart API'leri sunar (Fetch, URL, WebCrypto vb.). Yani burada geliştirilen kod tarayıcıya da taşınabilir
- Nanoservices : Artık mikroservislerin ötesinde, nanoservisler!
- Nanoservisler, bağımsız dağıtımın avantajlarını kütüphane fonksiyonu çağrısı düzeyinde bir ek yükle birleştiren yeni bir modeldir
- workerd ile çok sayıda Worker aynı süreç içinde yapılandırılabilir; her Worker bağımsız çalışırken birbiriyle iletişim de kurabilir
- Homogeneous deployment : Eskiden belirli bir container içinde belirli bir servisi çalıştırmak gerekirdi; workerd ile tüm makineler tüm servisleri çalıştırabilir
- Capability bindings: Temiz yapılandırma ve SSRF güvenliği sağlar
- Always backwards compatible : Her zaman geriye dönük uyumluluk sağlar
What it's not
- workerd is not a Secure Sandbox : Kötü amaçlı kod çalıştırılabilir. Bunu önlemek için ayrı bir sandbox katmanı gerekir
- workerd is not an independent project : Cloudflare Workers'ın çekirdeği ve bir parçasıdır. Dış katkıları kabul etse de bunu garanti etmek zordur
- workerd is not an off-the-shelf edge compute platform : Workers hizmetinin tamamı değildir
2 yorum
Yayınlandığında yapmayı istediğim bir şeydi, oho
Bunun ne anlama geldiğini merak etmiştim; meğer hemen önce açıklanan nano servisler (functions) yaklaşımıyla geliştirme yapıldığında, tüm nano servisleri tek bir makineye dağıtmak mümkünmüş (overhead düşük olduğu için) ve gerekirse aynı makinelerden sadece daha fazla eklemek yetiyormuş; yani karmaşık bir dağıtım yapılandırmasına gerek kalmıyormuş.