Rust (gjuhë programimi)

**Rust** është një gjuhë programimi shumëparadigmëshe, e qëllimeve të përgjithshme që thekson performancën, sigurinë e tipit dhe njëkohshmërinë . Ai forcon sigurinë e kujtesës —duke siguruar që të gjitha referencat të tregojnë tek kujtesa të vlefshme—pa kërkuar përdorimin e një garbage collector-i ose numërimin e referencave, teknika këto të pranishme në gjuhë të tjera të sigurta për kujtesën. Për të fuqizuar njëkohësisht sigurinë e kujtesës dhe për të parandaluar garat e njëkohshme të të dhënave, "kontrolluesi i huazimit" gjurmon jetëgjatësinë e objektit të të gjitha referencave në një program gjatë kompilimit. Rust huazon ide nga programimi funksional, duke përfshirë tipet statike, pandryshueshmërinë, funksionet e rendeve të larta dhe llojet e të dhënave algjebrike . Është popullarizuar për programimin e sistemeve .   

Zhvilluesi i softuerit Graydon Hoare e krijoi Rust si një projekt personal ndërsa punonte në Mozilla Research në 2006. Mozilla e sponsorizoi zyrtarisht projektin në vitin 2009. Që nga publikimi i parë i qëndrueshëm në maj 2015, Rust është përqafuar nga kompani të tilla si Amazon, Discord, Dropbox, Facebook ( Meta ), Google ( Alfabet ) dhe Microsoft . Në dhjetor 2022, ajo u bë gjuha e parë përveç C dhe assembly që u mbështet në zhvillimin e kernelit Linux .

Rust është shquar për rritjen e tij si një gjuhë më e re   dhe ka qenë objekt i kërkimit akademik të gjuhëve të programimit .   

## Sintaksa dhe veçoritë 
Sintaksa e Rust është e ngjashme me atë të C dhe C++,   edhe pse shumë nga veçoritë e tij u ndikuan nga gjuhë programimi funksionale si OCaml .  Hoare e përshkroi Rust si "të synuar për 'zhvilluesit e frustruar të C++' " dhe theksoi veçori të tilla si siguria, kontrolli i paraqitjes së kujtesës dhe njëkohësisë .  Siguria në Rust përfshin garancitë e sigurisë së kujtesës, sigurinë e tipit dhe mungesën e garave të të dhënave.

Më poshtë është një program "Përshëndetje, Botë!" në Rust. Fjala kyçe fn tregon një funksion, dhe println! makro (shih  ) printon mesazhin në daljen standarde .  Deklaratat në Rust ndahen me pikëpresje.
```rust
fn main() {
    println!("Hello, World!");
}
```

### Ndryshoret 
Ndryshoret në Rust përcaktohen përmes fjalës kyçe *let* .  Shembulli i mëposhtëm i cakton një vlerë variablit me emrin  .
```rust
fn main() {
    let foo = 10;
    println!("The value of foo is {foo}");
}
```
Variablat janë të pandryshueshme vetvetiu, dhe shtimi i fjalës kyçe *mut* lejon që ndryshorja të ndryshohet.  Shembulli i mëposhtëm përdor , që tregon fillimin e një komenti . 
```rust
fn main() {
    let mut foo = 10; // Ky kod nuk do të përpilohej pa shtuar "mut".
    println!("Vlera e foor është {foo}");
    foo = 20;
    println!("Vlera e foo është {foo}");
}
```
Shprehjet e shumëfishta  mund të përcaktojnë ndryshore të shumta me të njëjtin emër, të njohura si hijezim i ndryshoreve . Hijëzimi i ndryshoreve lejon transformimin e variablave pa pasur nevojë që ato të emërtohen ndryshe.  Shembulli i mëposhtëm deklaron një ndryshore të re me të njëjtin emër që është dyfishi i vlerës origjinale:
```rust
fn main() {
    let foo = 10;
    println!("Vlera e foo është {foo}");
    let foo = foo * 2;
    println!("Vlera e foo është  {foo}");
}
```
Hijëzimi i ndryshoreve është gjithashtu e mundur për vlera të llojeve të ndryshme, duke shkuar nga një stringë në gjatësinë e saj:
```rust
fn main() {
    let spaces = "   ";
    let spaces = spaces.len();
}
```