Başlangıç

Projeye başlamadan önce Rust Programlama Dili derleyicisinin bilgisayarınızda kurulu olması gerekmektedir. Rust derleyicisini işletim sisteminize göre Rust kurulumu sayfasında anlatıldığı gibi kurabilirsiniz. Bu kurulum bilgisayarınıza Rust Programlama Dili derleyicisi rustc ve paket yöneticisi cargo'yu kuracaktır. Cargo, Rust paketlerinin bağımlılığı çözüp, indirip derlemeye yarayan bir araçtır.

Yeni Proje Oluşturması

Cargo aynı zamanda yeni bir proje oluşturmanızı da sağlar. Yeni bir Rust projesi oluşturmak için komut satırından aşağıdaki komutları kullanın:

$ cargo new chip8
$ cd chip8

İkinci satırdaki komut, çalışma dizinimizi yeni projemizin içerisinde almaktadır. Bu adımdan sonra cargo build ile projenizi derleyebilir, cargo run ile çalıştırabilirsiniz. Yeni oluşturduğumuz projemizde cargo run komutunu kullandığımızda karşımıza Hello, world! yazısı çıkacaktır:

$ cargo run
   Compiling chip8 v0.1.0 (/home/onur/chip8)
    Finished dev [unoptimized + debuginfo] target(s) in 0.42s
     Running `target/debug/chip8`
Hello, world!

Rust paketlerinin meta verisi Cargo.toml içerisinde tutulmaktadır. Bu dosya içinde bağımlılıkları tanımlayabilirsiniz. Şu an için bizim bu dosya üzerinde yapacağımız bir değişiklik yok, yine de ön bilgi edinmek için bu dosyayı inceleyebilirsiniz. Cargo hakkında daha fazla bilgi almak için Cargo kitabını okuyabilirsiniz.

Rust Programlama Dili'nde her bir proje aynı zamanda bir pakettir. Bir paket; kütüphane veya çalıştırılabilir bir program olabilir. Eğer paketinizin kaynak dizini (src) içerisinde main.rs bulunursa, paketiniz çalıştırılabilir bir program olarak derlenir. cargo new ile oluşturulan bir paket, varsayılan olarak çalıştırılabilir bir program olarak oluşturulur. main.rs yerine lib.rs kullanan bir paket, kütüphane olarak tasarlanmıştır. Kütüphaneler aynı zamanda çalıştırılabilir programlarda barındırabilir. Biz bu projede çalıştırılabilir bir program yapacağımızdan, Cargo'nun oluşturduğu main.rs'e sadık kalacağız.

Bağımlılıkların Eklenmesi

Rust'ta paket bağımlılıkları Cargo.toml dosyası içerisinde [dependencies] bölümüne eklenir. Bu bölüme eklenen bağımlılıkları cargo, otomatikmen Rust paket deposu olan crates.io dan indirir derler ve uygulamızla birleştirir. Biz uygulamamızda sadece iki tane bağımlılık kullanacağız. Bunları [dependencies] bölümüne ekleyelim:

[dependencies]
rand = "0.7"
minifb = "0.13"

rand paketi rastgele bir sayı üretmeye yarar, minifb paketi en yaygın işletim sistemlerinde (Windows, OSX ve Linux) basit bir şekilde pencere oluşturup cizim yapmaya yarar.

Biz projemizde Rust 2021 yayınını kullandığımızdan, paketimiz içine tekrar extern crate tanımlaması yapmamıza gerek yok.