U ovom ćemo članku naučiti kako pomoću GitHub Akcija naučiti Rust iz vašeg web preglednika. Sve ćemo kodirati, izraditi, testirati, pokrenuti i objaviti s web stranice. Nije potreban softver! Učite s GitHubom ili nas pratite na Twitteru.
Rust je jedan od najvrućih programskih jezika danas. Alpha geekovi to vole. To je najdraži programski jezik Stackoverflowa u posljednje 4 godine zaredom.
Jedna od najjedinstvenijih i najdražih značajki Rusta je njegov agresivni kompajler koji vam pomaže osigurati ispravnost i sigurnost prije nego što se program uopće pokrene. Kao rezultat toga, programeri Rusta mogu pisati visoko učinkovite, ali sigurne programe. Rust eliminira čitave klase programskih grešaka, posebno onih teško otklonjivih runtime bugova.
Ako još niste probali, probajte! Magično je. Vjerujem da bi Rust mogao biti sljedeća Java ili Ruby - programski jezik koji svi moraju naučiti u budućnosti.
Međutim, učenje Rusta obično zahtijeva da na svoje računalo instalirate gomilu alata naredbenog retka. Kompajler Rust-a je spor jer je cijela paradigma Rust-a postavljena za dubinsku analizu izvornog koda i pronalaženje grešaka u vrijeme kompajliranja, umjesto da se ruši tijekom izvođenja.
Online Rust IDE-i, poput Rust Playground i REPL.it, jednostavni su alati koji ne iskorištavaju sve prednosti Rust ekosustava ciljeva i knjižnica nezavisnih prevoditelja.
Pa biste se mogli zapitati - mogu li pokušati naučiti Rust bez da moram instalirati sve te softverske pakete na svoje računalo?
Pa, s GitHub akcijama možete! Možete naučiti i eksperimentirati s Rust kodom izravno u svom web pregledniku. Započnimo!
GitHub Actions olakšava automatizaciju svih vaših softverskih tijekova rada, sada s CI / CD-om svjetske klase. Izgradite, testirajte i implementirajte svoj kôd izravno s GitHub-a. Napravite recenzije koda, upravljanje poslovnicama i rad triažiranja na način koji želite. Izvorni kod i radnje tijeka rada za primjer Hello World mogu se naći u ovom GitHub spremištu.Pozdrav svijete
Prvo stvorite novo GitHub spremište i dodajte Rust izvornu datoteku. Dodajmo src/main.rs
datoteku sa sljedećim sadržajem.
fn main() { println!("Hello, world!"); }

Zatim se vratite u korijenski /
direktorij GitHub spremišta i dodajte Cargo.toml
datoteku. Ova datoteka opisuje kako sustav tereta Rust treba graditi i spakirati naš projekt.
[package] name = "hello" version = "0.1.0" authors = ["ubuntu"] edition = "2018" [dependencies]
Sada imamo kompletan projekt Rust. Izgradimo ga i pokrenimo sada.
Github akcije
Na kartici Akcije GitHub-a možemo dodati tijekove rada povezane s ovim projektom. To su radnje koje Github automatski izvodi kada se dogode određeni događaji, poput guranja ili urezivanja koda. U našem bismo slučaju željeli da GitHub automatski izgradi i pokrene naš sustav main.rs
i pokaže nam rezultate.
Akcije tijeka rada i njihovi okidači događaja definirani su u yml
datotekama pod .github/workflows
direktorijom. Možete pisati vlastite yml
datoteke ili odabrati jedan od gotovih predložaka.

Ovdje odabiremo predložak Rust. GitHub vam omogućuje uređivanje rust.yml
datoteke prije provjere u spremište.

Uzmimo minutu ovdje da objasnimo kako funkcioniraju GitHub akcije. Zadana rust.yml
datoteka to kaže
- Kad god korisnik potisne kôd ili prihvati zahtjeve za povlačenjem u ovo spremište, aktivirat će se radnje u ovom
rust.yml
tijeku rada. - Tok rada stvorit će virtualni stroj s najnovijim operativnim sustavom Ubuntu. Na ovom Ubuntu sustavu, tada će izvršiti sljedeće korake.
- Provjerit će kôd iz
master
podružnice. - Izvest će
cargo build --verbose
naredbu za kompajliranje i izgradnju Rust koda. - Izvest će
cargo test --verbose
naredbu za izvršavanje test slučajeva. - Svi standardni i konzolski izlazi na sustavu Ubuntu iz gornje dvije naredbe bit će snimljeni GitHub Akcijama i prikazani na webu.
Možete urediti zadnji redak rust.yml
za izvođenje cargo run
, koji pokreće sastavljeni binarni program. Naša ažurirana rust.yml
datoteka je sljedeća.
name: Rust on: push: branches: [ master ] pull_request: branches: [ master ] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/[email protected] - name: Build run: cargo build --verbose - name: Run run: cargo run
Sad kad god gurnete kod u ovo spremište, rust.yml
izvršavaju se radnje u . Rezultate možete vidjeti na kartici Akcije.

Možete kliknuti rezultat i kliknuti karticu gradnje slijeva da biste vidjeli detalje. Odjeljci za izradu i izvođenje daju najrelevantnije detalje. Odjeljak Pokreni prikazuje uspješan ispis hello world!

Dalje, možete dodati ovisnosti trećih strana u Cargo.toml
i graditi složene Rust aplikacije na main.rs. Svaki put kad netko pritisne kôd, moći ćemo vidjeti rezultate.
Test Driven Development (TDD)
Naravno, vrlo malo programera zapravo pokreće svoje programe za ispis teksta na konzolu. Gore cargo run
navedeno je samo predstava. U stvarnosti većina programera piše funkcije i ispituje slučajeve za te funkcije. Najčešći zadatak nakon sastavljanja i izrade je pokretanje test slučajeva. Da vidimo kako se to radi.
Stvorite novo spremište GitHub, a zatim dodajte src/lib.rs
datoteku u nastavku. Kao što vidite, definira funkciju Rust i nekoliko testnih slučajeva. Može se izraditi i objaviti kao paket biblioteke Rust.
pub fn say(s: &str) -> String { let r = String::from("hello "); return r + s; } #[cfg(test)] mod tests { use super::*; #[test] fn say_hello() { let result = say("ssvm"); assert!(result.contains("hello ssvm")); } }
Zatim se vratite u korijenski /
direktorij GitHub spremišta i dodajte sljedeću Cargo.toml
datoteku.
[package] name = "hello" version = "0.1.0" authors = ["ubuntu"] edition = "2018" [lib] name = "hello_lib" path = "src/lib.rs" crate-type =["cdylib"] [dependencies]
Kliknite karticu Akcije i dodajte zadani tijek rada Rust. Kao što se sjećate, zadani tijek rada Rust završava s cargo test
, što je upravo ono što nam ovdje treba.

The workflow runs every time new code is pushed into this repository. You can click open a successful build, and see the output from the build and test actions.

What's next
Now you can experiment with your Rust code, and have GitHub build, test, and run it for you with complete console outputs, for free and without ever leaving your browser!
Resources
- Learn to program in Rust
- Learn more about GitHub Actions
- Of course, the best way to run Rust programs on the server is inside a WebAssembly Virtual Machine. Checkout the open source Second State VM for that!
- Learn about the BUIDL online IDE to code and deploy decentralized web apps on public blockchains
About the author
Dr. Michael Yuan is the author of 5 books on software engineering. His latest book Building Blockchain Apps was published by Addison-Wesley in Dec 2019. Dr. Yuan is the co-founder of Second State, a VC-funded startup that brings WebAssembly and Rust technologies to cloud, blockchain, and AI applications. It enables developers to deploy fast, safe, portable, and serverless Rust functions on Node.js.
Prior to Second State, Dr. Yuan was a long time open source contributor at Red Hat, JBoss, and Mozilla. Outside of software, Dr. Yuan is a Principal Investigator at the National Institutes of Health, with multiple research awards on cancer and public health research. He holds a PhD in astrophysics from the University of Texas at Austin.