Cloudflare Workers Wasm Problemleri
Cloudflare Workers Wasm kullanmak istiyorsanız karşılaşacağınız problemler ve çözümleri.
Cloudflare workers'ın hala zaman'a 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 hızlı çalışmasını istediğiniz projelerinizde kullanabilirsiniz. Örneğin basit bir proxy servisi, static dosya sunan bir servis yazabilirsiniz. Bunları çok wasm simd ile birlikte çok hızlı çalışan ve ölçeklenme derdi olmayan bir servis haline getirebilirsiniz.
Gelelim kendi dökümanında yazan FAQ'ya. Bu kısımda sorulan soruların hepsi aslında neleri yapamayacağınızı anlamanız adına hazırlanmış kısım.
SSS
- Bir
tokio
veyaasync_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-unknown
hedefine derlenmelidir. Bu, bazı yönlerden x86 ve ARM64 hedeflerinden daha sınırlıdır.
worker
crate'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
.wasm
binary'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 var mesela ancak bunun çalışmadığını görebilirsiniz. Crate'in kendisinden kaynaklı yada bağımlılıklarından birisinin wasm32-unknown-unknown
hedeflenmemesi ile alakalı olabilir. Bu durumda yapabileceğiniz bir şey yok. Ancak bu durumda bir issue açarak bunu belirtebilirsiniz.
Son olarak boyut limitlerini aşmanız durumunda yapabileceğiniz bir şey yok. Bu durumda yapabileceğiniz tek şey bağımlılıklarınızı minimuma indirmek. Burada bir iki tane crate ekleseniz bile boyut limitlerini aşmanız çok kolay olacaktır. Bu durumda yapabileceğiniz tek şey wasm
binary'sinden olabildiğince çok şeyi çıkarmak. Bu konuda buradaki linkteki adımları deneyebilirsiniz. Ancak yine de yeterli olmayabilir ki benim kullanım durumlarımda yeterli olmadığı oldu. Burada ikinci bir seçenek olarak CF ekibi iletişime geçerseniz size özel limit artırımında bulunabiliyor. Yada workerd
kendi ortamınızı oluşturup orada 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ülmesi ile birlikte çok daha güzel 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.