- 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
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
Web MVC framework'leriyle çalışma deneyiminden, iş mantığının model katmanına konmaması gerektiği dersini çıkardığını söylüyor
Bir REST framework'ünün Swagger tanımlarını otomatik üretebilmesini bekliyor
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
Python'dan Rust'a geçişle ilgileniyor
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