Sådan lærer du rust uden at installere software

I denne artikel lærer vi, hvordan du bruger GitHub Actions til at lære Rust fra din webbrowser. Vi koder, bygger, tester, kører og frigiver alt fra en webside. Ingen software nødvendig! Lær med GitHub eller følg os på Twitter.

Rust er et af de hotteste programmeringssprog i dag. Alpha geeks elsker det. Det er Stackoverflow mest elskede programmeringssprog de sidste 4 år i træk.

En af de mest unikke og elskede egenskaber ved Rust er dens aggressive kompilator, der hjælper dig med at sikre korrekthed og sikkerhed, før programmet selv kører. Som et resultat kan Rust-udviklere skrive ydeevne, men alligevel sikre programmer. Rust eliminerer hele klasser af programmeringsfejl, især de hard-debug-runtime-fejl.

Hvis du ikke har prøvet det, så prøv det! Det er magisk. Jeg tror, ​​at Rust kan være den næste Java eller Ruby - det programmeringssprog, som alle skal lære i fremtiden.

Men at lære Rust kræver typisk, at du installerer en masse kommandolinjeværktøjer på din computer. Rust-kompilatoren er langsom, fordi hele Rust-paradigmet er indstillet til dybt at analysere kildekoden og finde fejl på kompileringstidspunktet i stedet for at gå ned ved kørselstid.

Online Rust IDE'er, som Rust Playground og REPL.it, er enkle værktøjer, der ikke drager fuld fordel af Rust-økosystemet med tredjeparts kompilatormål og biblioteker.

Så du undrer dig måske - kan jeg prøve at lære Rust uden at skulle installere alle disse softwarepakker på min computer?

Nå, med GitHub-handlinger kan du! Du kan lære og eksperimentere med Rust-kode direkte i din webbrowser. Lad os komme igang!

GitHub Actions gør det nemt at automatisere alle dine softwarearbejdsgange nu med verdensklasse CI / CD. Byg, test og implementer din kode lige fra GitHub. Foretag kodevurderinger, filialhåndtering og triaging-arbejde, som du vil. Kildekoden og arbejdsproceshandlingerne for Hello World-eksemplet findes i dette GitHub-lager.

Hej Verden

Opret først et nyt GitHub-arkiv, og tilføj en Rust-kildefil. Lad os tilføje en src/main.rsfil med følgende indhold.

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

Gå derefter tilbage til rodmappen /i GitHub-arkivet, og tilføj en Cargo.tomlfil. Denne fil beskriver, hvordan Rust-lastsystemet skal bygge og pakke vores projekt.

[package] name = "hello" version = "0.1.0" authors = ["ubuntu"] edition = "2018" [dependencies]

Nu har vi et komplet Rust-projekt. Lad os bygge og køre det nu.

Github handlinger

På GitHubs fane Handlinger kan vi tilføje arbejdsgange, der er knyttet til dette projekt. Det er handlinger, som Github automatisk udfører, når visse begivenheder opstår, såsom kodepush eller commit. I vores tilfælde vil vi gerne have, at GitHub automatisk bygger og kører vores main.rsog viser os resultaterne.

Arbejdsflowhandlingerne og deres hændelsesudløsere er defineret i ymlfiler under .github/workflowsbiblioteket. Du kan skrive dine egne ymlfiler eller vælge en af ​​de færdige skabeloner.

Her vælger vi Rust-skabelonen. GitHub giver dig mulighed for at redigere rust.ymlfilen, før du kontrollerer den i arkivet.

Lad os tage et øjeblik her for at forklare, hvordan GitHub Actions fungerer. Standardfilen rust.ymlsiger det

  • Når en bruger skubber kode eller accepterer pull-anmodninger i dette lager, rust.ymludløses handlingerne i denne arbejdsgang.
  • Workflowet opretter en virtuel maskine, der kører det nyeste Ubuntu-operativsystem. På dette Ubuntu-system udfører det derefter følgende trin.
  • Det kasser koden fra mastergrenen.
  • Det kører cargo build --verbosekommandoen for at kompilere og opbygge Rust-koden.
  • Det kører cargo test --verbosekommandoen for at udføre testsagerne.
  • Alle standard- og konsoludgange på Ubuntu-systemet fra ovenstående to kommandoer bliver fanget af GitHub Actions og vises på internettet.

Du kan redigere den sidste linje, der rust.ymlskal udføres cargo run, som kører det kompilerede binære program. Vores opdaterede rust.ymlfil er som følger.

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

Nu når du skubber kode til dette arkiv, rust.ymludføres handlingerne i . Du kan se resultaterne under fanen Handlinger.

Du kan klikke på et resultat og klikke på fanen build til venstre for at se detaljerne. Build- og run-sektionerne giver de mest relevante detaljer. Afsnittet Kør viser vellykket udskrivning af hej verden!

Dernæst kan du tilføje tredjepartsafhængigheder i Cargo.tomlog opbygge komplekse Rust-applikationer i main.rs. Hver gang nogen skubber kode, vil vi kunne se resultaterne.

Test Driven Development (TDD)

Selvfølgelig kører meget få udviklere faktisk deres programmer for at udskrive tekst til konsollen. Det cargo runovenstående er blot et show. I virkeligheden skriver de fleste udviklere funktioner og testcases for disse funktioner. Den hyppigste opgave efter kompilering og bygning er at køre testcases. Lad os se, hvordan det gøres.

Opret et nyt GitHub-arkiv, og tilføj derefter en src/lib.rsfil nedenfor. Som du kan se, definerer den en Rust-funktion og et par testtilfælde. Det kan bygges og frigives som en Rust-bibliotekspakke.

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")); } }

Gå derefter tilbage til rodmappen /i GitHub-arkivet, og tilføj følgende Cargo.tomlfil.

[package] name = "hello" version = "0.1.0" authors = ["ubuntu"] edition = "2018" [lib] name = "hello_lib" path = "src/lib.rs" crate-type =["cdylib"] [dependencies]

Klik på fanen Handlinger, og tilføj standard Rust-workflow. Som du husker, slutter standard Rust-workflow med cargo test, hvilket er præcis det, vi har brug for her.

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 er forfatter til 5 bøger om software engineering. Hans seneste bog Building Blockchain Apps blev udgivet af Addison-Wesley i december 2019. Dr. Yuan er medstifter af Second State, en VC-finansieret opstart, der bringer WebAssembly og Rust-teknologier til cloud-, blockchain- og AI-applikationer. Det giver udviklere mulighed for at implementere hurtige, sikre, bærbare og serverløse rustfunktioner på Node.js.

Forud for Anden Stat var Dr. Yuan lang tid open source-bidragyder hos Red Hat, JBoss og Mozilla. Uden for software er Dr. Yuan en hovedforsker ved National Institutes of Health med flere forskningspriser om kræft og folkesundhedsforskning. Han har en ph.d. i astrofysik fra University of Texas i Austin.