Rust Kullanımı
ServBay, macOS üzerinde Rust geliştirmek isteyen geliştiriciler için pratik bir araç zinciri desteği sunar. ServBay'in paket yönetim sistemi sayesinde Rust derleyici ortamını, yani derleyici rustc
ve derleme ile paket yöneticisi cargo
yu kolayca kurabilir ve yönetebilirsiniz.
Genel Bakış
Rust Diline Giriş
Rust, performans, bellek güvenliği ve eşzamanlılık odaklı modern bir sistem programlama dilidir. İlk olarak Mozilla Research'ten Graydon Hoare tarafından tasarlanmış ve 2010 yılında tanıtılıp, 2015'te 1.0 kararlı sürümü yayınlanmıştır. Rust'ın tasarım amacı, C++'ın sunduğu performans ve kontrolü sağlarken, yenilikçi sahiplik (Ownership) ve ödünç alma (Borrowing) sistemleri sayesinde derleme sürecinde bellek güvenliğini garanti altına almaktır. Böylece, C/C++'ta sıkça karşılaşılan null pointer, asılı pointer ve veri yarışları gibi sorunlardan çöp toplayıcıya (garbage collector) ihtiyaç duymadan kaçınılır.
Güvenliği, hızlı yapısı ve güçlü eşzamanlılık özellikleri sayesinde Rust, geliştirici toplulukları arasında hızla popülerleşmiş; Stack Overflow geliştirici anketlerinde yıllardır "en sevilen programlama dili" seçilmiştir. Rust, sistem programlamadan web arka uç servislerine (Örneğin: Actix Web, Rocket), WebAssembly, komut satırı araçları, oyun motorları ve gömülü sistemlere kadar geniş bir kullanım alanına sahiptir.
ServBay’in Rust Desteği
ServBay, Rust araç zincirini bağımsız bir paket olarak yönetir. Bunun anlamı şudur:
- Kolay Kurulum: Ayrı yükleyiciler indirip manuel kurulum yapmak veya
rustup
ile karmaşık ayarlar yapmak gerekmeden, ServBay'in grafik arayüzüyle tek tıkla kurulum mümkündür. - Ortam Entegrasyonu: Kurulumun ardından,
rustc
vecargo
komutları ServBay'in yönettiği terminal ortamına otomatik olarak entegre edilir. - Merkezi Yönetim: Rust ve diğer geliştirme dilleri, veritabanları ve araçlar ServBay’in tek bir arayüzünden yönetilir.
Bu işlevler; sistem programlaması, WebAssembly projeleri, yüksek performanslı web servisleri ya da diğer Rust uygulamalarını geliştirmek isteyenlere kullanışlı bir başlangıç noktası sunar.
Rust Paketine Erişim
- ServBay uygulamasını açın.
- Sol navigasyon menüsünden
Paketler (Packages)
sekmesine tıklayın. Paketler
sayfasında, aşağıya kaydırın veya sol bölmedekiLanguages
->Rust
seçeneğini seçin.- Sağdaki alanda mevcut Rust paketleri listelenecektir. ServBay genellikle Rust araç zincirinin bir kararlı sürümünü sunar.
Rust Kurulumu
Paket listesinde Rust araç zincirinin durumu gösterilir:
- Paket Adı: Örneğin
Rust
. - Sürüm: Paket içerisinde bulunan Rust araç zincirinin sürüm numarası (örneğin 1.86.0).
- Durum: Durum
Installed
(Kurulu) veyaNot Installed
(Kurulu Değil) şeklinde gösterilir. - Kontrol: İşlem butonları bulunur.
Rust araç zincirini kurmak için:
- Durumun
Not Installed
olduğundan emin olun. - Satırın en sağındaki İndir/Kur (Download/Install) simgesine tıklayın (genellikle aşağıya bakan bir ok).
- ServBay, Rust'ı indirmeye ve kurmaya başlayacaktır.
- Kurulum başarılı olursa durum
Installed
(Kurulu) olarak değişir ve kontrol simgesi Kaldır (Uninstall) simgesi (çöp kutusu) olur.
Kurulu Rust’ı Yönetmek
- Kurulu Sürümü Görüntüleme: Listede
Installed
durumunu ve sürüm numarasını görerek mevcut Rust sürümünüzü doğrulayabilirsiniz. - Rust'ı Kaldırma: Eğer ServBay tarafından yönetilen Rust ortamına artık ihtiyacınız yoksa, ilgili Kaldır (Uninstall) simgesine (çöp kutusu) tıklayıp işlemi onaylayabilirsiniz.
Rust Kullanımı (Cargo & rustc)
Kurulum sonrası, ServBay ortamının etkin olduğu terminalde cargo
ve rustc
komutlarını kullanabilirsiniz.
Sık Kullanılan Komutlar:
Rust Derleyici Sürümünü Kontrol Etme:
bashrustc --version
1Cargo Sürümünü Kontrol Etme:
bashcargo --version
1Yeni Rust Projesi Oluşturma (Cargo ile): Cargo, Rust'ın resmi derleme aracı ve paket yöneticisidir; proje oluştururken tavsiye edilir.
bash# hello_servbay adında yeni bir ikili proje oluştur cargo new hello_servbay --bin cd hello_servbay
1
2
3Bu işlemle tipik bir proje yapısı oluşur:
Cargo.toml
: Proje yapılandırma dosyası (meta veriler, bağımlılıklar vb.).src/main.rs
: Proje ana kaynak kodu dosyası.
src/main.rs
Dosyasını Görüntüleme (Varsayılan İçerik):rustfn main() { println!("Hello, world!"); }
1
2
3Projeyi Derleyip Çalıştırma:
bash# Cargo, önce kodu derler ve target/debug klasöründe çalıştırılabilir dosya oluşturur, ardından çalıştırır cargo run
1
2Terminalde şu çıktıyı görmelisiniz:
Hello, world!
Sadece Projeyi Derleme (Debug Modu):
bashcargo build
1Çalıştırılabilir dosya
./target/debug/hello_servbay
yolunda bulunur.Projeyi Derleme (Release Optimizasyon Modunda):
bashcargo build --release
1Optimize edilen dosya
./target/release/hello_servbay
konumunda olur.Bağımlılık Ekleme:
Cargo.toml
dosyasının[dependencies]
bölümüne ihtiyacınız olan kütüphaneleri ("crates" olarak adlandırılır) ekleyin. Örneğin, popüler bir web çatısı olanactix-web
için:toml[dependencies] actix-web = "4" # Sürüm gereksinimi belirtin
1
2Ardından
cargo build
veyacargo run
komutunu çalıştırın; Cargo bağımlılıkları otomatik indirip derleyecektir.
Web Sunucusu Entegrasyonu (Rust Web Uygulamasını Dağıtma)
Rust ile inşa edilen web uygulamaları (ör. Actix Web, Rocket, Axum, Tokio gibi çatılar kullanılarak) genellikle bağımsız, yüksek performanslı bir çalıştırılabilir dosya olarak derlenir.
Bu derlenmiş ikili dosyayı doğrudan terminalde çalıştırabilirsiniz. Standart portlar (80/443) üzerinden erişim sağlamak ve ServBay'in alan adı yönetimi ile SSL özelliklerinden yararlanmak için önerilen yöntem şudur:
- ServBay’de Rust web uygulamanız için bir Web Sitesi (Website) oluşturun.
- ServBay’in web sunucusunu (Nginx, Caddy, Apache) ters proxy olarak yapılandırarak, ilgili alan adından gelen istekleri, Rust uygulamanızın dinlediği iç porta (örn.
http://127.0.0.1:8080
) yönlendirin.
Özet
ServBay, kolay kurulup yönetilebilen Rust paketleriyle, macOS üzerinde Rust geliştirmeye başlama sürecini basitleştirir. Size güçlü rustc
derleyicisi ve fonksiyonel cargo
yapı aracı sunarak, yüksek performanslı ve güvenilir Rust kodu yazmaya odaklanmanızı sağlar. ServBay’in ters proxy gibi ek yetenekleriyle, yerel Rust web servislerinizi yayınlamak da çok daha kolay hale gelir.