- Comprehensive Rust'a Hoş Geldiniz 🦀
- 1. Kursun Çalıştırılması
❱
- 1.1. Kurs Yapısı
- 1.2. Klavye Kısayolları
- 1.3. Çeviriler
- 2. Cargo'yu Kullanmak
❱
- 2.1. Rust Ekosistemi
- 2.2. Kod Örnekleri
- 2.3. Cargo'nun Yerel (Local) Olarak Çalıştırılması
- Gün 1: Sabah
- 3. Hoş Geldiniz
- 4. Merhaba, Dünya
❱
- 4.1. Rust Nedir?
- 4.2. Rust'ın Faydaları
- 4.3. Deneme Alanı (Playground)
- 5. Türler ve Değerler
❱
- 5.1. Merhaba, Dünya
- 5.2. Değişkenler
- 5.3. Değerler
- 5.4. Aritmetik
- 5.5. Tür Çıkarımı
- 5.6. Alıştırma: Fibonacci
❱
- 5.6.1. Çözüm
- 6. Kontrol Akışı Temelleri
❱
- 6.1. Bloklar ve Kapsamlar
- 6.2. if İfadeleri
- 6.3. match İfadeleri
- 6.4. Döngüler
❱
- 6.4.1. for
- 6.4.2. loop
- 6.5. break ve continue
❱
- 6.5.1. Etiketler
- 6.6. Fonksiyonlar
- 6.7. Makrolar
- 6.8. Alıştırma: Collatz Sekansı
❱
- 6.8.1. Çözüm
- Gün 1: Öğleden Sonra
- 7. Hoş Geldiniz
- 8. Demetler (Tuples) ve Diziler (Arrays)
❱
- 8.1. Diziler
- 8.2. Demetler
- 8.3. Dizi Adımlama (Iteration)
- 8.4. Desenler ve Çözümlenme (Destructuring)
- 8.5. Alıştırma: İçiçe Diziler
❱
- 8.5.1. Çözüm
- 9. Referanslar
❱
- 9.1. Paylaşılan Referanslar
- 9.2. Özel (Exclusive) Referanslar
- 9.3. Dilimler (Slices)
- 9.4. Dizeler (Strings)
- 9.5. Referans Geçerliliği (Validity)
- 9.6. Alıştırma: Geometri
❱
- 9.6.1. Çözüm
- 10. Kullanıcı Tanımlı Türler
❱
- 10.1. İsimli Yapılar
- 10.2. Demet Yapıları (Tuple Structs)
- 10.3. Enumlar
- 10.4. Tür Eş İsimleri (Type Aliases)
- 10.5. Const
- 10.6. Static
- 10.7. Alıştırma: Asansör Olayları
❱
- 10.7.1. Çözüm
- Gün 2: Sabah
- 11. Hoş Geldiniz
- 12. Desen Eşleştirme
❱
- 12.1. Reddedilemez Desenler (Irrefutable Patterns)
- 12.2. Değerleri Eşleştirmek
- 12.3. Yapıların (Struct) Çözümlenmesi
- 12.4. Enum'ların (Struct) Çözümlenmesi
- 12.5. Let'li Kontrol Akışı
❱
- 12.5.1. if let İfadeleri
- 12.5.2. while let Deyimleri
- 12.5.3. let else
- 12.6. Alıştırma: İfade Değerlendirmesi
❱
- 12.6.1. Çözüm
- 13. Metotlar ve Özellikler (Traits)
❱
- 13.1. Metotlar
- 13.2. Özellikler (Traits)
❱
- 13.2.1. Özelliklerin (Traits) Gerçekleştirimi
- 13.2.2. Üstözellikler (Supertraits)
- 13.2.3. İlişkili Türler
- 13.3. Türetme
- 13.4. Alıştırma: Genel Kaydedici
❱
- 13.4.1. Çözüm
- 14. Jenerikler
❱
- 14.1. Jenerik Fonksiyonlar
- 14.2. Özellik (Trait) Sınırları
- 14.3. Jenerik Veri Türleri
- 14.4. Jenerik Özellikler (Traits)
- 14.5. impl Trait
- 14.6. dyn Trait
- 14.7. Alıştırma: Jenerik min
❱
- 14.7.1. Çözüm
- Gün 2: Öğleden Sonra
- 15. Hoş Geldiniz
- 16. Standart Kütüphane Türleri
❱
- 16.1. Standart Kütüphane
- 16.2. Dokümantasyon
- 16.3. Option
- 16.4. Result
- 16.5. String
- 16.6. Vec
- 16.7. HashMap
- 16.8. Alıştırma: Sayıcı
❱
- 16.8.1. Çözüm
- 17. Çevreleyiciler (Closures)
❱
- 17.1. Çevreleyici Sözdizimi (Closure Syntax)
- 17.2. Yakalama (Capturing)
- 17.3. Çevreleyici Özellikler (Closure Traits)
- 17.4. Alıştırma: Kaydedici (Log) Filtresi
❱
- 17.4.1. Çözüm
- 18. Standart Kütüphanedeki Özellikler (Traits)
❱
- 18.1. Karşılaştırmalar
- 18.2. Operatörler
- 18.3. From ve Into
- 18.4. Tür Çevirimi
- 18.5. Read ve Write
- 18.6. Default, yapı (struct) güncelleme sözdizimi
- 18.7. Alıştırma: ROT13
❱
- 18.7.1. Çözüm
- Gün 3: Sabah
- 19. Hoş Geldiniz
- 20. Bellek Yönetimi
❱
- 20.1. Program Belleğinin Gözden Geçirilmesi
- 20.2. Bellek Yönetimine Yaklaşımlar
- 20.3. Sahiplik
- 20.4. Taşıma Semantiği
- 20.5. Clone
- 20.6. Kopyalanan Türler
- 20.7. Drop
- 20.8. Alıştırma: İnşa Edici / Yapıcı Tür (Builder Type)
❱
- 20.8.1. Çözüm
- 21. Akıllı Göstericiler
❱
- 21.1. Box<T>
- 21.2. Rc
- 21.3. Sahipli Özellik Nesneleri (Owned Trait Objects)
- 21.4. Alıştırma: İkili Ağaç
❱
- 21.4.1. Çözüm
- Gün 3: Öğleden Sonra
- 22. Hoş Geldiniz
- 23. Ödünç Alma
❱
- 23.1. Bir Değeri Ödünç Alma
- 23.2. Ödünç Alma Kontrolü
- 23.3. Ödünç Alma Hataları
- 23.4. İç Değişebilirlik (Interior Mutability)
❱
- 23.4.1. Cell
- 23.4.2. RefCell
- 23.5. Alıştırma: Sağlık İstatistikleri
❱
- 23.5.1. Çözüm
- 24. Ömürler (Lifetimes)
❱
- 24.1. Ömür için Ek Açıklamalar (Annotations)
- 24.2. Ömür Atlaması (Elision)
- 24.3. Veri Yapılarında Ömürler
- 24.4. Alıştırma: Protobuf Ayrıştırma
❱
- 24.4.1. Çözüm
- Gün 4: Sabah
- 25. Hoş Geldiniz
- 26. Adımlayıcılar (Iterators)
❱
- 26.1. Motivasyon
- 26.2. Iterator Özelliği (Trait)
- 26.3. Iterator Yardımcı Metotları
- 26.4. collect
- 26.5. IntoIterator
- 26.6. Alıştırma: Adımlayıcı Metot Zincirleme
❱
- 26.6.1. Çözüm
- 27. Modüller
❱
- 27.1. Modüller
- 27.2. Dosya Sistemi Hiyerarşisi
- 27.3. Görünürlük
- 27.4. Kapsülleme (Encapsulation)
- 27.5. use, super, self
- 27.6. Alıştırma: Bir GUI Kütüphanesi için Modüller
❱
- 27.6.1. Çözüm
- 28. Test Etme
❱
- 28.1. Birim Testleri
- 28.2. Diğer Test Türleri
- 28.3. Derleyici Tüyleri (Lint) ve Clippy Aracı
- 28.4. Alıştırma: Luhn Algrotiması
❱
- 28.4.1. Çözüm
- Gün 4: Öğleden Sonra
- 29. Hoş Geldiniz
- 30. Hata İşleme
❱
- 30.1. Panic'ler
- 30.2. Result
- 30.3. Try Operatörü
- 30.4. Try Dönüşümleri
- 30.5. Error Özelliği (Trait)
- 30.6. thiserror
- 30.7. anyhow
- 30.8. Alıştırma: Result ile Yeniden Yazma
❱
- 30.8.1. Çözüm
- 31. Emniyetsiz (Unsafe) Rust
❱
- 31.1. Emniyetsiz
- 31.2. Ham Göstericilerinin İçeriği (Dereferencing)
- 31.3. Değişebilir Statik Değişkenler
- 31.4. Birlikler (Unions)
- 31.5. Emniyetsiz (Unsafe) Fonksiyonlar
❱
- 31.5.1. Emniyetsiz (Unsafe) Rust Fonksiyonlar
- 31.5.2. Emniyetsiz (Unsafe) Harici Fonksiyonlar
- 31.5.3. Emniyetsiz (Unsafe) Fonksiyonları Çağırma
- 31.6. Emniyetsiz Özellikler (Unsafe Traits)
- 31.7. Alıştırma: FFI Sarmalayıcı
❱
- 31.7.1. Çözüm
- Android
- 32. Hoş Geldiniz
- 33. Kurulum (Setup)
- 34. İnşa (Build) Kuralları
❱
- 34.1. İkili (Binary) Dosya
- 34.2. Kütüphane
- 35. AIDL
❱
- 35.1. Doğum Günü Servisi Eğitimi
❱
- 35.1.1. Arayüz
- 35.1.2. Servis API
- 35.1.3. Servis
- 35.1.4. Sunucu
- 35.1.5. Dağıtmak (Deploy)
- 35.1.6. İstemci
- 35.1.7. API'yi Değiştirme
- 35.1.8. Uyarlamaları Güncellenme
- 35.2. AIDL Türler
❱
- 35.2.1. İlkel (Primitive) Türler
- 35.2.2. Dizi Türleri
- 35.2.3. Nesnelerin Gönderilmesi
- 35.2.4. Parsellenebilir Gönderme
- 35.2.5. Dosyaların Gönderilmesi
- 36. Test Etme
❱
- 36.1. GoogleTest
- 36.2. Taklit Etme (Mocking)
- 37. Kayıt Tutma (Logging)
- 38. Birlikte Çalışabilirlik
❱
- 38.1. C ile
❱
- 38.1.1. Basit bir C Kütüphanesi
- 38.1.2. Bindgen
- 38.1.3. İkili Dosyamızı Çalıştırmak
- 38.1.4. Basit bir Rust Kütüphanesi
- 38.1.5. C Tarafından Rust'ı Kullanma
- 38.2. C++ ile
❱
- 38.2.1. Köprü Modülü
- 38.2.2. Rust Köprüsü
- 38.2.3. Oluşturulan (Generated) C++
- 38.2.4. C++ Köprüsü
- 38.2.5. Paylaşılan (Shared) Türler
- 38.2.6. Paylaşılan (Shared) Enum'lar
- 38.2.7. Rust Hata İşleme
- 38.2.8. C++ Hata İşleme
- 38.2.9. Ek Türler
- 38.2.10. Android için inşa: Genrules
- 38.2.11. Android için inşa: C++
- 38.2.12. Android için inşa: Rust
- 38.3. Java ile
- Chromium
- 39. Hoş Geldiniz
- 40. Kurulum (Setup)
- 41. Chromium ve Cargo Ekosistemlerinin Karşılaştırılması
- 42. İlke (Policy)
- 43. İnşa (Build) Kuralları
❱
- 43.1. Emniyetsiz (Unsafe) Kod
- 43.2. Chromium C++'dan Rust Koduna Bağımlılık
- 43.3. Visual Studio Code
- 43.4. Alıştırma
- 44. Test Etme
❱
- 44.1. rust_gtest_interop Kütüphanesi
- 44.2. Rust Testleri için GN Kuralları
- 44.3. chromium::import! Makrosu
- 44.4. Alıştırma
- 45. C++ ile Birlikte Çalışabilirlik
❱
- 45.1. Bağlamalara Örnek
- 45.2. CXX'in Sınırlamaları
- 45.3. CXX Hata İşleme
❱
- 45.3.1. Hata İşleme: QR Örneği
- 45.3.2. Hata İşleme: PNG Örneği
- 45.4. Chromium'da CXX'i Kullanma
- 45.5. Alıştırma
- 46. Üçüncü Taraf Kasalarnı Eklenmesi
❱
- 46.1. Cargo.toml'yi Yapılandırma
- 46.2. gnrt_config.toml'yi Yapılandırma
- 46.3. Kasaların İndirilmesi
- 46.4. gn İnşa Kurallarının Oluşturulması
- 46.5. Problemlerin Çözülmesi
❱
- 46.5.1. Kod Oluşturan İnşa Betikleri (Build Scripts )
- 46.5.2. C++ Kodunu İnşa Eden (Build) veya Keyfi Eylemler Gerçekleştiren İnşa Betikleri
- 46.6. Bir Kasaya Bağımlılık
- 46.7. Gözden Geçirmeler (Reviews) ve Denetimler (Audits)
- 46.8. Chromium Kaynak Kodunun Kontrol Edilmesi
- 46.9. Kasaları Güncel Tutmak
- 46.10. Alıştırma
- 47. Bir Araya Getirmek - Alıştırma
- 48. Alıştırma Çözümleri
- Yalın Sistem (Bare Metal): Sabah
- 49. Hoş Geldiniz
- 50. no_std
❱
- 50.1. Minimal Bir Örnek
- 50.2. alloc
- 51. Mikrodenetleyiciler
❱
- 51.1. Ham MMIO
- 51.2. PAC'ler
- 51.3. HAL Kasaları (Crates)
- 51.4. Kart Destek Kasaları (Board Support Crates)
- 51.5. Tür Durum Deseni
- 51.6. embedded-hal
- 51.7. probe-rs ve cargo-embed
❱
- 51.7.1. Hata Ayıklama
- 51.8. Diğer Projeler
- 52. Alıştırmalar
❱
- 52.1. Pusula
- 52.2. Çözümler
- Yalın Sistem (Bare Metal): Öğleden Sonra
- 53. Uygulama İşlemcileri
❱
- 53.1. Rust'a Hazırlanmak
- 53.2. Satır İçi Assembly
- 53.3. MMIO
- 53.4. Bir UART Sürücü Yazalım
❱
- 53.4.1. Daha Fazla Özellik (Trait)
- 53.4.2. Onu Kullan
- 53.5. Daha İyi Bir UART Sürücüsü
❱
- 53.5.1. Bitflags Kasası
- 53.5.2. Çoklu Yazmaçlar (Registers)
- 53.5.3. Sürücü
- 53.6. safe-mmio
❱
- 53.6.1. Sürücü
- 53.6.2. Onu Kullan
- 53.7. Kayıt Tutma (Logging)
❱
- 53.7.1. Onu Kullan
- 53.8. İstisnalar
- 53.9. aarch64-rt
- 53.10. Diğer Projeler
- 54. Kullanışlı Kasalar (Crates)
❱
- 54.1. zerocopy
- 54.2. aarch64-paging
- 54.3. buddy_system_allocator
- 54.4. tinyvec
- 54.5. spin
- 55. Android'de Yalın Sistem (Bare Metal)
❱
- 55.1. vmbase
- 56. Alıştırmalar
❱
- 56.1. RTC Sürücüsü
- 56.2. Çözümler
- Eşzamanlılık: Sabah
- 57. Hoş Geldiniz
- 58. İş Parçacıkları (Threads)
❱
- 58.1. Temel İş Parçacıkları (Plain Threads)
- 58.2. Kapsamlı İş Parçacıkları (Threads)
- 59. Kanallar
❱
- 59.1. Vericiler ve Alıcılar
- 59.2. Sınırsız Kanallar
- 59.3. Sınırlı Kanallar
- 60. Send ve Sync
❱
- 60.1. Marker Özellikleri (Traits)
- 60.2. Send
- 60.3. Sync
- 60.4. Örnekler
- 61. Paylaşımlı Durum (State)
❱
- 61.1. Arc
- 61.2. Mutex
- 61.3. Örnek
- 62. Alıştırmalar
❱
- 62.1. Filozofların Akşam Yemeği
- 62.2. Çok İş Parçacıklı Link Denetleyicisi
- 62.3. Çözümler
- Eşzamanlılık: Öğleden Sonra
- 63. Hoş Geldiniz
- 64. Async Temelleri
❱
- 64.1. async/await
- 64.2. Future Özellikleri (Traits)
- 64.3. Durum Makinesi
- 64.4. Çalışma Zamanları
❱
- 64.4.1. Tokio Kasası
- 64.5. Görevler
- 65. Kanallar ve Kontrol Akışı
❱
- 65.1. Async Kanalları
- 65.2. Join
- 65.3. Select
- 66. Tuzaklar
❱
- 66.1. Yürütücünün/Çalıştırıcının (Executor) Engellenmesi
- 66.2. Pin
- 66.3. Async Özellikleri (Traits)
- 66.4. İptal (Cancellation)
- 67. Alıştırmalar
❱
- 67.1. Filozofların Akşam Yemeği
- 67.2. Yayımlamalı Sohbet Uygulaması
- 67.3. Çözümler
- Son sözler
- 68. Teşekkürler!
- 69. Sözlük
- 70. Diğer Kaynaklar
- 71. Emekler