Programovanie

Výukový program Rust: Začíname s jazykom Rust

Za posledných pár rokov prešiel Rust od zvedavosti pripravenej v laboratóriu zamestnanca Mozilly k silnému uchádzačovi o napísanie novej generácie natívnych aplikácií a riešení na princípe holého kovu. Tieto pokroky však pochádzajú od spoločnosti Rust, ktorá poskytuje vlastný reťazec nástrojov a systém správy komponentov - spolu s vlastnými vlastnosťami a vlastnosťami.

V tomto článku sa dozviete základné informácie o nastavení pracovného prostredia v systéme Rust, konfigurácii IDE a čo najlepšom využití sady nástrojov, ktoré program Rust poskytuje pre vývoj aplikácií.

Súvisiace video: Vývoj bezpečnejšieho softvéru s programom Rust

Rýchlo sa rozbehnite s nováčikom Rustom, ktorý je určený na vytváranie rýchleho softvéru na úrovni systému. Tento dvojminútový animovaný vysvetľovač ukazuje, ako Rust obchádza otravné problémy s programovaním pamäte a správy.

Pochopte Rust v nočných, beta a stabilných vydaniach

Reťazec nástrojov spoločnosti Rust pozostáva predovšetkým z kompilátora Rust, rustc, spolu s nástrojmi na správu inštalácie Rust. Pretože spoločnosť Rust je neustále vyvíjaná, reťazec nástrojov Rust je navrhnutý tak, aby bolo ľahké udržiavať ju aktualizovanú.

Softvérové ​​projekty sa často poskytujú prostredníctvom viacerých kanálov slúžiacich na oddelenie stabilnej a beta verzie kódu. Reťazec nástrojov spoločnosti Rust funguje rovnakým spôsobom a pre svoj reťazec nástrojov ponúka tri kanály:

  • Stabilný: Hlavné bodové vydania, ktoré sa objavujú každých šesť týždňov.
  • Beta: Kandidáti na ďalšie významné uvoľnenie bodu, ktoré sa objavujú častejšie.
  • Nočné: Najbezprostrednejšia stavba s prístupom k najmodernejším funkciám, ale bez záruk ich stability.

Ako upozornil vývojár Karol Kuczmarski, najlepšie je považovať nočný kanál Rust za svoj vlastný jazyk. Niektoré funkcie Rust, ako napríklad kompilácia do WebAssembly, sú k dispozícii iba v nočnom kanáli a je možné ich aktivovať iba pomocou špeciálnych smerníc kompilátora. Inými slovami, nebudú sa kompilovať ani v beta verzii, ani v stabilných kanáloch.

Toto je zámerné, pretože neexistuje žiadna záruka, že nočné funkcie budú podporované kdekoľvek inde. Mnohé z týchto funkcií však nakoniec prechádzajú z nočného kanála do beta a stabilných vydaní. (Napríklad kompilácia na WebAssembly funguje od verzie Rust 1.30 v stabilnej verzii.)

V skratke:

  1. Použite stabilný pre skutočné výrobné práce.
  2. Použite beta otestovať aktuálny softvér proti nadchádzajúcim verziám a zistiť, či sa v aktualizácii nemôže niečo pokaziť.
  3. Používajte iba nočné pre experimenty v karanténe s najnovšími funkciami spoločnosti Rust.

Vyberte OS pre vývoj Rust

Rust podporuje všetky tri hlavné platformy - Windows, Linux a MacOS - v 32 aj 64-bitových inkarnáciách, pre každú má oficiálne binárne súbory. Mnoho ďalších platforiem má aj oficiálne binárne súbory, ale nemajú rovnakú úroveň pokrytia automatizovaným testovaním. Medzi tieto platformy druhej triedy patria ARMv6 a ARMv7 pre iOS, Android a Linux; MIPS Linux a MIPS64 Linux; 32-bitové vydania x86 iOS, Windows a Linux; a WebAssembly. Ostatné platformy, napríklad Windows XP alebo experimentálny systém HaikuOS, sú podporované prostredníctvom neoficiálnych verzií.

Rustov vývojový tím uviedol, že nie je jednou z Rustových misií byť čo najširšie prenosným. Napríklad hoci je Rust k dispozícii na mnohých architektúrach ARM, nie je zaručené, že bude Rust oficiálne podporovaný na hardvérových platformách nižšej triedy.

To znamená, že by mala existovať podporovaná zostava Rust pre drvivú väčšinu bežných bežných prípadov použitia - konkrétne pre 32- a 64-bitové systémy Windows, Linux a MacOS.

Ak plánujete vývoj v prostredí Rust vo Windows, nezabudnite na svoje reťazce nástrojov. Rust podporuje dva reťazce nástrojov v systéme Windows:

  • Natívny program Microsoft Visual C (MSVC) ABI
  • Gnu ABI používaný linkerom GCC.

Pretože takmer všetok softvér v C / C ++ zabudovaný v systéme Windows aj tak používa MSVC, budete väčšinu času chcieť použiť reťazec nástrojov MSVC. Ak niekedy budete potrebovať GCC, bude to s najväčšou pravdepodobnosťou spolupráca s knižnicami tretích strán vytvorenými v systéme Windows s GCC.

Dobrou správou je, že systém riadenia reťaze nástrojov Rust vám umožňuje ponechať si obidve MSVC a Nainštalované reťazce nástrojov GCC a umožňujú vám medzi nimi prepínať medzi jednotlivými projektmi.

Jedným z cieľov kompilácie Rusta je WebAssembly, čo znamená, že môžete písať do Rusta a nasadiť ho do webového prehliadača. Samotná WebAssembly je stále drsná po okrajoch, rovnako ako Rustova podpora pre ňu. Ale ak ste ambiciózni a chcete, aby vám ruky boli nepríjemné, prečítajte si knihu zostavenú vývojármi Rust a WebAssembly, ktorá podrobne popisuje proces kompilácie WebAssembly do Rustu. Kniha obsahuje návod na jednoduchý projekt, implementáciu hry Conway’s Game of Life, napísanú v jazyku Rust a nasadenú ako WebAssembly.

Začnite nastavenie Rust pomocou zhrdzavenie

Rust poskytuje inštalačný program a systém údržby reťaze nástrojov typu „všetko v jednom“ zhrdzavenie. Stiahnuť ▼ zhrdzavenie a spustiť to; získa najnovšie verzie reťaze nástrojov Rust a nainštaluje ich za vás.

Najkritickejšie nástroje udržiavané serverom zhrdzavenie sú:

  • zhrdzavenie sám. Kedykoľvek nové verzie zhrdzavenie alebo sú zverejnené iné nástroje, stačí spustiť aktualizácia rustup a mať všetko automaticky aktualizované.
  • rustc, kompilátor Rust.
  • Náklad, Rustov balíček a manažér pracovného priestoru.

Predvolene, zhrdzavenie nainštaluje Rust zo stabilného kanála. Ak chcete používať verziu beta alebo nočnú verziu, musíte si tieto kanály nainštalovať (napríkladnerezová inštalácia každú noc), a nastaviť Rust na ich predvolené použitie (zhrdzavenie predvolene každú noc). Môžete tiež ručne určiť, ktorý kanál sa má použiť pri kompilácii aplikácie Rust, takže nemusíte nastavovať a obnovovať predvolené hodnoty pri každom prechode medzi projektmi.

Môžete tiež použiťzhrdzavenie inštalovať a udržiavať vlastné reťazce nástrojov. Spravidla ich používajú neoficiálne zostavy Rust tretích strán pre nepodporované platformy, pretože tie zvyčajne vyžadujú ich vlastné linkery alebo iné nástroje špecifické pre platformu.

Nakonfigurujte svoje IDE pre Rust

Napriek tomu, že Rust je relatívne nový jazyk, získal si silnú podporu mnohých bežných IDE. Vývojár Manuel Hoffman udržiava projekt na sledovanie stavu takejto podpory na webových stránkach areweideyet.com.

Zabezpečenie dobrého fungovania Rustu s IDE je výslovným cieľom jeho vývojového tímu prostredníctvom funkcie nazývanej Rust Language Server (RLS). RLS poskytuje živú spätnú väzbu o danom kóde skôr od Rustovho vlastného kompilátora, ako od syntaktického analyzátora tretej strany.

Tu sú IDE, ktoré podporujú Rust:

  • Microsoft Visual Studio Code má rozšírenie podpory jazyka Rust vytvorené tímom vývojových nástrojov spoločnosti Rust. Táto úroveň integrácie z neho robí jedno z najlepšie podporovaných IDE pre Rust.
  • Používatelia Eclipse si môžu stiahnuť predbalenú edíciu Eclipse pre vývoj Rust alebo použiť samostatný doplnok Corrosion pre Eclipse Photon. (Starší balík, RustDT, už nie je udržiavaný.)
  • Ak ste fanúšikom Emacsu alebo Vimu, ďalší vývojári ako vy napísali doplnky špecifické pre Rust pre oboch editorov. Emacs má režim špecifický pre Rust a Vim má doplnok na zvýraznenie a formátovanie syntaxe. Podpora RLS je k dispozícii pre Emacs aj Vim, je však potrebné ju pridať a nakonfigurovať manuálne.
  • Používatelia aplikácií IntelliJ Idea a Atom môžu pridať doplnky na doplnenie podpory Rust.
  • Sublime Text má podporu syntaxe Rust už od začiatku a doplnky poskytujú hlbšiu podporu pre ďalšie funkcie.
  • Projekt na vytvorenie jednoduchého IDE špeciálne pre Rust, SolidOak, bol vyvíjaný nejaký čas, ale odvtedy sa zastavil. Najlepšie urobíte, ak pôjdete s jedným z existujúcich IDE, ktoré už podporu majú.

Vytvorte svoj prvý projekt Rust

Rust projekty majú mať konzistentnú adresárovú štruktúru, v ktorej sú kódom a metadátami projektu uložené určitými spôsobmi. Kód je uložený v a src podadresár a podrobnosti o projekte sú uložené v dvoch súboroch v koreňovom adresári projektu,Cargo.toml (základné informácie o projekte) a Cargo.lock (automaticky generovaný zoznam závislostí). Túto adresárovú štruktúru a metadáta môžete vytvoriť ručne, ale je jednoduchšie použiť Rustove vlastné nástroje.

Tip:Online sprievodca učením Rust podľa príkladu Rust poskytuje interaktívne ukážky kódu, ktoré je možné upravovať a spúšťať priamo v prehliadači. Dotýka sa takmer všetkých hlavných konceptov Rust, aj keď niektoré z dôležitejších konceptov, ako napríklad požičiavanie a životnosť, sú v diskusii predstavené pomerne neskoro.

Nástroj Rust’s Cargo spravuje projekty Rust aj knižnice alebo „debny“, ktoré používajú. Roztočiť nový projekt Rust s názvom môj projekt do vlastného adresára zadajte náklad nový môj_projekt. (Pre vývojárov C # pracujúcich s .Net Core, myslite na dotnet nový Príkaz.) Nový projekt sa objaví v podadresári s týmto názvom spolu so základným manifestom projektu - Cargo.toml súbor - a útržok zdrojového kódu projektu, v a src podadresár.

Pri vytváraní nového projektu sa amain.rs súbor sa automaticky vytvorí v src adresár projektu. Tento súbor obsahuje základnú aplikáciu „hello world“, takže si môžete svoj rad nástrojov Rust ihneď otestovať tak, že ho skompilujete a spustíte.

Zdrojový kód aplikácie „hello world“:

fn main () {

println! („Ahoj svet!“);

}

Ak ho chcete vytvoriť a spustiť, zadajte koreň adresára projektu a zadajte príkaz nákladný beh. Upozorňujeme, že v predvolenom nastavení vytvára Cargo projekty v režime ladenia. Ak chcete spustiť v režime uvoľnenia, použite nákladná dráha - vydanie. Binárne súbory sú postavené v cieľ / ladenie alebo cieľ / uvoľnenie podadresár projektu podľa toho, aký profil kompilácie používate.

Práca s prepravkami Rust

Správa balíkov je kľúčovou súčasťou každého moderného programovacieho prostredia. Za týmto účelom poskytuje Rust „prepravky“, čo sú knižnice tretích strán zabalené na distribúciu s nástrojmi spoločnosti Rust. Debny nájdete v oficiálnom registri balíkov Rust, Crates.io.

Ak je váš projekt závislý od konkrétnej prepravky, musíte ju určiť úpravou projektu Cargo.toml spis. Štandardný spôsob, ako to urobiť, je manuálne - to znamená jednoduchou úpravou Cargo.toml priamo s textovým editorom. Pri ďalšej prestavbe projektu Rust automaticky získa všetky potrebné závislosti.

Tip: Dva nástroje, náklad-upraviť a náklad-upraviť-lokálne, môže aktualizovať závislosti z príkazového riadku, hoci ide o neoficiálne projekty tretích strán.

Keď staviate projekt Rust, ktorý závisí od externých prepraviek, Cargo ich štandardne vyhľadá na serveri Crates.io; nemusíte ich získavať manuálne. Na prepravky vo svojom projekte môžete tiež odkazovať podľa adresy URL, a nie podľa názvu prepravky, pre prípad, že potrebujete prepravku, ktorá nie je hostiteľom v registri, napríklad niečo zo súkromného úložiska.

Upozorňujeme, že niektoré debny áno iba inštalujte a budujte na Rustovom nočnom kanáli, pretože využívajú experimentálne funkcie, ktoré nie sú dostupné v iných kanáloch. Ak ste na vydávacom kanáli a pokúsite sa nainštalovať takúto prepravku, nedostanete nijaké varovanie, kým zlyhá samotná kompilácia. Dokumentácia prepravky zvyčajne uvádza, či to vyžaduje nočný kanál, alebo nie, takže si ho prečítajte skôr, ako ho zahrniete, nieto ho zostaviť.

Prepravky môžu byť dodávané s binárnymi súbormi. Niektoré z nich sú nástroje príkazového riadku používané pri vývoji Rustu; iné sú univerzálne nástroje (ako naprripgrep). Ak chcete nainštalovať jednu z týchto prepraviek, stačí napísať inštalácia nákladu . Toto nie je iba spôsob distribúcie binárneho súboru vytvoreného pomocou Rustu, ale je to pohodlný spôsob, ako ho vývojári Rustu môžu získať ako súčasť pracovného toku zahŕňajúceho nástroje Rust.

Krížová kompilácia Rustu na inú platformu

Pretože Rust podporuje viac reťazcov nástrojov, dokonca aj pri rovnakej inštalácii Rustu, môžete Rust aplikácie kompilovať do cieľového OS a prostredia, ktoré sa líši od toho, v ktorom kompilujete.

Takéto krížové kompilácie si vyžadujú reťazec nástrojov na platforme, na ktorej pracujete, ktorá sa zhoduje s cieľovou platformou. Niekedy to, ako pri krížovom kompilácii s Linuxom vo Windows alebo naopak, vyžaduje niečo viac, ako vlastniť linker GCC. Ale inokedy je to zložitejšie. Napríklad na krížové kompilácie do systému MacOS potrebujete na dokončenie úlohy knižnice Xcode IDE - cctools (ekvivalent Apple binutils) a sada MacOS SDK.

Nástroje tretích strán ponúkajú tieto spôsoby riešenia týchto problémov:

  • Jedným z takýchto nástrojov je Trust, šablóna Travis CI a AppVeyor, ktorá dokáže automaticky publikovať binárne vydania projektu Rust. Môže byť zostavený pre systémy Linux, Windows a MacOS, hoci vyžaduje použitie služieb Travis CI a AppVeyor a vyžaduje, aby bol váš projekt hostený na GitHub.
  • Ďalší projekt, Cross, beží priamo na 64-bitovom hostiteľovi x86 Linux, ale poskytuje to, čo jeho tvorca popisuje ako „nulové nastavenie“ krížovej kompilácie na širokú škálu cieľov, vrátane 64-bitových Windows a MIPS.
  • Projekt crossbuild poskytuje obraz Docker s viacerými architektúrami, ktorý je možné použiť na cross-build medzi všetkými tromi hlavnými platformami.
$config[zx-auto] not found$config[zx-overlay] not found