Cloudflare Workers Wasm Problemleri
Cloudflare Workers Wasm kullanmak istiyorsanız karşılaşacağınız problemler ve çözümleri.
Cloudflare Workers'ın hâlâ zamana ihtiyacı var. Zaten halihazırda WIP olarak işaretlenmiş durumda. Öncelikle hangi durumlar için iyi bir seçenek olduğunu belirtelim. Küçük dosya boyutunda, kontrol edilebilir bağımlılık yönetimine sahip ve hızlı çalışmasını istediğiniz projelerinizde kullanabilirsiniz. Örneğin basit bir proxy servisi veya statik dosya sunan bir servis yazabilirsiniz. Bunları Wasm SIMD ile birlikte çok hızlı çalışan ve ölçeklenme derdi olmayan bir servis haline getirebilirsiniz.
Gelelim kendi dokümantasyonunda yer alan FAQ bölümüne. Bu kısımda sorulan sorular, aslında neleri yapamayacağınızı anlamanız için hazırlanmış.
SSS
- Bir
tokioveyaasync_stdçalışma zamanını kullanan bir Worker'ı yayınlayabilir miyim?
- Şu an için hayır. Worker projesindeki tüm crate'ler
wasm32-unknown-unknownhedefine derlenmelidir. Bu, bazı yönlerden x86 ve ARM64 hedeflerinden daha sınırlıdır.
workercrate'inde X neden yok?
- Muhtemelen olmalı, sadece bunu tamamen uygulamak veya FFI'yi sarmak için bir kütüphane eklemek için zaman bulamadık. Bir özelliğe ihtiyacınız olduğunu bize bildirin, bir sorun açarak.
- Paketim Workers boyut limitlerini aşıyor, ne yapmalıyım?
- Burada çözümler üzerinde çalışıyoruz, ama bu arada kodunuzun bağımlı olduğu crate'lerin sayısını minimuma indirmeniz veya
.wasmbinary'sinden olabildiğince çok şeyi çıkarmanız gerekecek. İşte deneyebileceğiniz bazı ek adımlar: https://rustwasm.github.io/book/reference/code-size.html#optimizing-builds-for-code-size
Yukarıdaki soruların ilki ile başlayalım. Eğer tokio veya async_std kullanmak istiyorsanız şu an için bunu yapamazsınız. Aslında async kullanabilirsiniz, bundan yana problem yok. Ancak kullanmak isteyeceğiniz bütün kütüphaneler yukarıdaki iki kütüphane bağımlılığına sahip olduğu için hata ile karşılaşacaksınız.
Kullanmak istediğiniz bir crate olabilir, ancak bunun çalışmadığını görebilirsiniz. Bu, crate'in kendisinden ya da bağımlılıklarından birinin wasm32-unknown-unknown hedefini desteklememesinden kaynaklanabilir. Bu durumda yapabileceğiniz çok fazla şey yok. Ancak bir issue açarak bunu belirtebilirsiniz.
Son olarak boyut limitlerini aşmanız durumunda yapabileceğiniz şeyler sınırlı. Bu durumda bağımlılıklarınızı minimuma indirmeniz gerekir. Bir iki crate ekleseniz bile boyut limitlerini aşmanız çok kolay olacaktır. Bu nedenle wasm binary'sinden olabildiğince çok şeyi çıkarmanız gerekir. Bu konuda buradaki adımları deneyebilirsiniz. Ancak yine de yeterli olmayabilir; benim kullanım durumlarımda yeterli olmadığı oldu. İkinci bir seçenek olarak Cloudflare ekibiyle iletişime geçerseniz size özel limit artırımında bulunabiliyorlar. Ya da workerd ile kendi ortamınızı oluşturup istediğiniz limitlerde çalıştırabilirsiniz.
Sonuç
Bence Cloudflare Workers çok güzel bir servis. Ancak henüz tam anlamıyla kullanıma hazır değil. Özellikle limitler tarafında birçok sorun var. Bu sorunların çözülmesiyle birlikte çok daha iyi bir servis olacağına inanıyorum.
Not: Eğer herhangi bir eksiklik veya yanlışlık olduğunu düşünüyorsanız, lütfen bana bildirin.