15 puan yazan xguru 2022-12-05 | 1 yorum | WhatsApp'ta paylaş
  • 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

 
xguru 2022-12-05

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.