Rust (język programowania)

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj
Ten artykuł dotyczy języka programowania. Zobacz też: inne znaczenia tego pojęcia.
Rust
Logo języka
Logo języka
Pojawienie się 2010 (pierwsza informacja),
2015 (pierwsza wersja stabilna)
Paradygmat wieloparadygmatowy (obiektowy, imperatywny, funkcyjny, strukturalny, współbieżny)
Aktualna wersja stabilna 1.23.0 (4 stycznia 2018; miesiąc temu)[1]
Twórca Graydon Hoare
Licencja Apache 2.0, MIT[2]
Platforma sprzętowa wieloplatformowy
Platforma systemowa wieloplatformowy
Strona internetowa

Rustkompilowalny język ogólnego przeznaczenia rozwijany przez Mozilla Research. Stworzony z myślą, aby był „bezpieczny, współbieżny i praktyczny”.

Język zaprojektował Graydon Hoare w 2006 roku, w 2009 projekt został przyjęty pod skrzydła Fundacji Mozilla[3]. W 2010 Mozilla upubliczniła informację o języku[4]. W 2011 roku kompilator języka, znany jako rustc, został z powodzeniem skompilowany przez samego siebie.

Pierwsza numerowana wersja alfa została wydana w 2012 roku[5]. 15 maja 2015 ukazała się wersja 1.0[6].

Rust wykorzystuje Cargo jako menadżer pakietów.

Wiele organizacji wykorzystuje ten język programowania w zastosowaniach produkcyjnych[7]. Obecnie dwoma największymi otwartymi projektami korzystającymi z Rusta są: Servo (silnik przeglądarki internetowej) oraz kompilator Rusta[8].

Przykłady[edytuj | edytuj kod]

Hello world:

fn main() {
    println!("Hello, world!");
}

Fizz buzz:

fn main() {
    let max = 101;
    for i in 1..max {
        if i % 15 == 0 {
            println!("{}", "FizzBuzz")
        } else if i % 5 == 0 {
            println!("{}", "Buzz")
        } else if i % 3 == 0 {
            println!("{}", "Fizz")
        } else {
            println!("{}", i)
        }
    }
}

ROT13:

fn rot13(string: String) -> String {
    let mut bytes: Vec<u8> = string.into();
    for byte in &mut bytes {
        match *byte {
            b'a'...b'm' | b'A'...b'M' => *byte += 13,
            b'n'...b'z' | b'N'...b'Z' => *byte -= 13,
            _ => {}, //nic nie rób
        }
    }
    String::from_utf8(bytes).unwrap()
}

fn main() {
    let a = rot13("abc".to_owned());
    assert_eq!(a, "nop");
}

Przypisy[edytuj | edytuj kod]

  1. The Rust Core Team: Announcing Rust 1.23 (ang.). The Rust Programming Language Blog, 2018-01-04. [dostęp 2018-01-11].
  2. The Rust Project Developers: Prawa autorskie (ang.). GitHub, 2010. [dostęp 2017-02-05].
  3. Michał Olber: Rust 0.1 – nowy język programowania od Fundacji Mozilla (pol.). OSWorld.pl, 2012-01-27. [dostęp 2017-02-05].
  4. Chris Double: A Quick Look at the Rust Programming Language (ang.). Bluish Coder, 2011-03-31. [dostęp 2017-02-05].
  5. Brian Anderson: The Rust compiler 0.1 is unleashed (ang.). Mozilla Mailing Lists, 2012-01-20. [dostęp 2017-02-05].
  6. The Rust Core Team: Announcing Rust 1.0 (ang.). The Rust Programming Language Blog, 2015-05-15. [dostęp 2017-02-05].
  7. Friends of Rust (ang.). The Rust Programming Language. [dostęp 2018-01-13].
  8. Frequently Asked Questions – What examples are there of large Rust projects? (ang.). The Rust Programming Language. [dostęp 2018-01-13].

Linki zewnętrzne[edytuj | edytuj kod]