3 puan yazan GN⁺ 2024-10-23 | 1 yorum | WhatsApp'ta paylaş
  • Rwf, Rust ile web uygulamaları oluşturmak için kapsamlı bir framework'tür
  • Klasik MVC desenini (model-view-controller) kullanarak yazılmıştır ve hızlı, güvenli web uygulamalarını kolayca geliştirmek için gereken her şeyi varsayılan olarak sunar

Özelliklere genel bakış

  • HTTP sunucusu
  • PostgreSQL sorgularını kolay yazmayı sağlayan kullanıcı dostu bir ORM
  • Dinamik şablonlar
  • Kimlik doğrulama ve yerleşik kullanıcı oturumları
  • Middleware
  • Arka plan işleri ve zamanlanmış görevler
  • Veritabanı migration'ları
  • JSON serileştirmesini destekleyen yerleşik REST framework'ü
  • WebSockets desteği
  • Statik dosya barındırma
  • Backend odaklı SPA oluşturmak için Hotwired Turbo ile sıkı entegrasyon
  • Ortama göre yapılandırma
  • Loglama ve metrikler
  • CLI
  • Django/Flask uygulamalarından geçiş yapmak için WSGI sunucusu

Hızlı başlangıç

  • Rwf'yi stack'inize eklemek için bir Rust binary uygulaması oluşturun ve bağımlılıklara rwf ile tokio ekleyin:
cargo add rwf  
cargo add tokio@1 --features full  
  • Bir uygulama oluşturmak şu kadar basittir:
use rwf::prelude::*;  
use rwf::http::Server;  
  
#[derive(Default)]  
struct IndexController;  
  
#[async_trait]  
impl Controller for IndexController {  
    async fn handle(&self, request: &Request) -> Result {  
        Ok(Response::new().html("Hey Rwf!"))  
    }  
}  
  
#[tokio::main]  
async fn main() {  
    Server::new(vec![  
        route!("/" => IndexController),  
    ])  
    .launch("0.0.0.0:8000")  
    .await  
    .unwrap();  
}  

Durum

  • Rwf erken geliştirme aşamasındadır ve production'a hazır değildir. Birçok özellik ve dokümantasyon henüz tamamlanmamıştır.

GN⁺ Özeti

  • Rwf, Rust ile web uygulamaları geliştirmek için güçlü bir framework olup MVC deseniyle hızlı ve güvenli web uygulamalarını kolayca geliştirebilmek için çeşitli özellikler sunar.
  • Erken geliştirme aşamasında olduğu için production ortamında kullanımı zor olabilir, ancak çeşitli özellikler ve dokümantasyonun sürekli güncellenmesi beklenmektedir.
  • Rust kullanarak web uygulaması geliştirmek isteyen geliştiriciler için faydalıdır; ayrıca Django veya Flask gibi mevcut framework'lerden geçişi düşünenler için de yardımcı olabilir.
  • Benzer özellikler sunan diğer Rust tabanlı web framework'leri arasında Actix ve Rocket bulunur.

1 yorum

 
GN⁺ 2024-10-23
Hacker News görüşleri
  • Go dilinin standart kütüphanesini kullanmanın karmaşık web framework bağımlılıklarını azalttığını, güvenliği artırdığını ve bakımı kolaylaştırdığını vurguluyor

    • Rust tarafında ise web framework'lerinin hâlâ faydalı olabileceği görüşünü dile getiriyor
  • Web MVC framework'leriyle çalışma deneyiminden, iş mantığının model katmanına konmaması gerektiği dersini çıkardığını söylüyor

    • Servis katmanını güçlü biçimde tavsiye ediyor ve bunu komut nesneleri olarak uygulamak için Interactor gibi gem'lerin kullanılmasını öneriyor
  • Bir REST framework'ünün Swagger tanımlarını otomatik üretebilmesini bekliyor

    • Mevcut ORM veya şablon motorlarını kullanmak yerine neden kendi çözümlerini geliştirdiklerini merak ediyor
  • Yeni framework için seçilen ismin arama sonuçlarında üst sıralara çıkmak açısından iyi bir yöntem olduğunu değerlendiriyor

    • Yeni fikirleri keşfetmenin önemli olduğunu belirtiyor
  • Python'dan Rust'a geçişle ilgileniyor

    • Büyük ölçekli kullanımda bunun Reverse Proxy ile ele alınması gerektiğini öneriyor
  • ORM'yi web framework'ünün yerleşik bir parçası olarak sunmanın ilk başta mantıklı görünebileceği, ancak zamanla bunun bağımsız bir projeye dönüşebileceği veya başka bir ORM kullanmak isteyebileceğiniz konusunda uyarıyor

  • Rails ve Django gibi güçlü görüşlere sahip framework'lere daha fazla ihtiyaç olduğunu söylüyor

  • Rust'taki önemli bir boşluğu dolduran bir framework'ün çıkmasından heyecan duyduğunu ifade ediyor

  • Django geliştirme deneyimi sayesinde MVC'nin değerini fark ettiğini ve yeni framework'e göz atacağını belirtiyor

  • Rust backend çalışmaları için çeşitli framework'leri değerlendirdikten sonra Axum'un en uygun seçenek olduğuna karar verdiğini söylüyor

    • Yeni framework'ün "batteries included, but not too opinionated" ölçütüne tam olarak uyduğunu değerlendiriyor