3 puan yazan GN⁺ 2024-10-07 | 1 yorum | WhatsApp'ta paylaş
  • Rust ile web geliştirirken Django gibi bir framework olmadığı için birçok işi doğrudan elle yapmak gerekiyor
  • Rust’ın tip sistemi, performans ve derleme süresi gibi avantajlarından yararlanmak için web geliştirmeyi kolaylaştıracak bir framework’e ihtiyaç var

Gerekli özellikler

  • Routing/handler: İstekleri işleyecek handler’lara bağlama işlevi gerekli
  • Şablonlar: HTML ve JSON gibi içerikler üretilebilmeli
  • Statik dosya sunumu: CSS dosyaları gibi varlıkları sunma işlevi gerekli
  • Giriş: Çok kullanıcılı uygulamalar için giriş özelliği gerekli
  • Yetki yönetimi: Kullanıcı bazında erişim izinleri yönetilebilmeli
  • Veritabanı arayüzü: Veriyi depolama ve yönetme işlevi gerekli
  • Yönetim araçları: Temel yönetim işlemlerini destekleyen araçlar gerekli
  • WebSocket: Gerçek zamanlı veri aktarımı için WebSocket özelliği gerekli
  • Hot reloading: Kod değişikliklerinin anında yansıması gerekli

Ek olarak gerekli özellikler

  • Arka plan işleri: Belirli bir takvime göre işler çalıştırılabilmeli
  • İzleme/gözlemlenebilirlik: Sistem durumunu izlemeye yönelik işlevler gerekli
  • Caching: Performans artışı için caching gerekli
  • E-posta ve bildirimler: Parola sıfırlama gibi işlevleri destekleyen bildirim özellikleri gerekli
  • Dağıtım araçları: Tutarlı bir dağıtım yöntemi gerekli
  • CSS/JS bundling: CSS ve JS dosyalarını etkili biçimde yönetme işlevi gerekli

Mevcut ekosistem

  • Web framework’leri: actix-web, axum gibi asgari işlevler sunan framework’ler mevcut
  • Kütüphane koleksiyonları: Şablonlar, giriş, yetki yönetimi vb. için çeşitli kütüphaneler var ancak entegre bir çözüm eksik

Yeni web toolkit’i

  • nicole's web toolkit (newt): Çeşitli özellikleri bir araya getiren bir web toolkit’i geliştiriliyor
  • Hedef: Yeni web uygulamalarına hızlı başlamayı desteklemek
  • Plan: Mevcut yapı taşlarını kullanarak entegre bir çözüm sunmak

GN⁺ özeti

  • Rust ile web geliştirmeyi kolaylaştıracak entegre bir web framework’üne duyulan ihtiyacı vurguluyor
  • Mevcut web framework’leri ve kütüphanelerin sınırlamalarını aşmaya yönelik bir girişimi tanıtıyor
  • nicole's web toolkit (newt) ile çeşitli işlevleri bir araya getirerek geliştirici deneyimini iyileştirmeyi hedefliyor
  • Django benzeri framework avantajlarını Rust ekosistemine taşıma çabası dikkat çekiyor
  • Benzer işlevler sunan diğer projeler arasında actix-web ve axum da bulunuyor

1 yorum

 
GN⁺ 2024-10-07
Hacker News görüşü
  • Rust kullanarak en az çabayla eğlenceli şeyler üretmeyi seven birinin görüşü. Rust verimlilik ve bellek yönetiminde çok iyi olsa da, web geliştirme için Go veya Django'nun daha uygun olduğu düşünülüyor

  • Rust'un güvenlik sağlaması, geliştiricilerin daha az hata yapmasına yardımcı oluyor ve Notepad gibi basit araçlarla bile kod yazabilmek bir avantaj olarak görülüyor

  • Web framework'ü olarak Rocket'ın "tembel geliştirici" için en uygun, en iyi framework olduğu düşünülüyor

  • Rust'un pattern matching özelliği kullanılırsa router'a gerek olmadığı, authentication'ın da dilin ya da framework'ün değil başka bir mesele olduğu düşünülüyor

  • CSS/JS araçlarının Rust frontend framework'leri için uygun olmadığı, buna rağmen Rust'un frontend web tarafında da yeterince olgun olduğu düşünülüyor

  • Rocket framework'ünden hiç bahsedilmemesine şaşırıldığı, Rocket'ın "batteries included" bir framework olmayı hedeflediği düşünülüyor

  • Rust ile web geliştirme yapmanın fena olmadığı ama concurrency sorunları bulunduğu ve component library seçmenin zor olduğu düşünülüyor

  • Flutter kullanarak UX'in iyileştirildiği, Rust ile entegrasyonunun kolay olduğu ve bundan memnun kalındığı belirtiliyor

  • Flutter DOM'a saygı göstermese de, her yere dağıtılabilen UX'i kolayca üretmeye imkan verdiği için cazip bulunuyor

  • Poem'in FastAPI'ye benzediği ama ilk kurulumda çok fazla boilerplate gerektirdiği düşünülüyor

  • "Tembel" ifadesi, web framework'ünün genel işleri kendiliğinden halletmesini istemek anlamında kullanılmış; gerçekte ise yine çok iş gerektiği düşünülüyor

  • loco-rs, poem, rocket gibi projelerin zaten "batteries included" bir deneyim sunduğu ve CLI'ın bu sürece rehberlik ettiği düşünülüyor

  • F#'ın Rust'a benzer bir type system ve araç seti sunduğu ama async işlemler ve bellek yönetiminin daha az karmaşık olduğu düşünülüyor

  • Yazarın Rust için Spring Boot benzeri bir framework istediği düşünülüyor