- Fiberplane, altyapı için işbirlikçi bir not defteri aracı sunuyor (olay müdahalesi ve altyapı hata ayıklama)
- İki büyük sorunu çözmeye yardımcı oldu
1. Operational Transformation
- Editördeki işbirliği özelliklerinde çakışmaları çözmek için bir yönteme ihtiyaç vardı
- Google Docs'un kullandığı algoritma olan OT'yi uyguladılar, ancak bu kolay bir iş değildi
- Karmaşıklığın ana nedeni, desteklenen operasyonlar arttıkça uygulanması gereken dönüşüm sayısının geometrik olarak artması
- Bu işlemi uygulayan mantığın hem istemcide hem sunucuda bulunması gerekiyor. İki taraf arasındaki tutarsızlıklar yan etkilere yol açabilir (örneğin kullanıcılar arasında farklı not defterleri görünmesi)
- Bunu iki tarafta ayrı ayrı iki kez uygulamak riskliydi. Ekip de küçüktü ve kopyalanması gereken kod miktarı çok artacaktı
- Bu yüzden arka uç algoritmasını Rust ile yazdılar. Ardından WASM kullanarak ön tarafta da tamamen aynı kodu çalıştırdılar
- Böylece geliştirme çabasından tasarruf edip tutarsızlık riskini azalttılar
2. Sağlayıcılar
- Bir diğer sorun, harici veri kaynaklarından not defterine veri getirmekti
- Veri kaynakları çok farklı biçim ve boyutlarda geliyor ve kullanıcının tarayıcısından her zaman kolayca erişilemiyor
- Bu sorunu çözmek için tarayıcıda ve müşterinin barındırdığı proxy sunucusunda çalışabilen WASM tabanlı bir eklenti olan "Fiberplane Providers"ı geliştirdiler
- Bu teknik JavaScript ile de mümkündü, ancak WASM'in şu avantajları vardı
- Daha iyi performans
- WASM'in desteklediği tüm dillerle eklenti yazılabilmesi
- WASM eklentilerinin sandbox içinde çalışması sayesinde kötü amaçlı sağlayıcıların yeteneklerinin sınırlandırılması
fp-bindgen
- WebAssembly birçok farklı senaryoda fayda sağlıyor
- Kendi ürün geliştirmelerini sadeleştirebilir veya müşteri altyapısına erişen kodu güvenli şekilde çalıştırabilir
- WASM önemli ve yaygın kullanıldığı için ayrıca kendi araçlarını da geliştirdiler
- fp-bindgen, Rust kaynak kodu üzerinde çalışan bir binding generator
- Rust ile WASM eklentileri yazmak ve bunları tarayıcıda veya Wasmer ortamında barındırmak için kullanılabiliyor
- fp-bindgen'i açık kaynak olarak yayımladılar
1 yorum
Bu tür startup yazılarını seviyorum.
Kendi çözdükleri sorunu başkalarına da faydalı olacak şekilde derlerken, ilgili açık kaynaklarını da birlikte tanıtıp ekosisteme katkıda bulundukları izlenimini veriyorlar.
GeekNews Weekly #177'de QuickJS-emscripten : QuickJS'i WASM'a derleyip çalıştırmak başlığını tanıtmıştım.
Burada da benzer şekilde sandboxing üzerinden bir eklenti konsepti benimsiyorlar. Sandboxing için bir konteyner olarak WASM kullanımı artık temel hale geliyor gibi görünüyor.