kriptovijesti
  • Home
  • Vijesti
  • Bitcoin
  • Blockchain
  • Ethereum
  • Market
  • Guide
  • Kontakt
No Result
View All Result
  • Home
  • Vijesti
  • Bitcoin
  • Blockchain
  • Ethereum
  • Market
  • Guide
  • Kontakt
No Result
View All Result
kriptovijesti
No Result
View All Result
Home Market

Kako izgraditi osnovnu CLI aplikaciju u Rustu

CryptoVijest by CryptoVijest
July 8, 2023
in Market
0
Kako izgraditi osnovnu CLI aplikaciju u Rustu
190
SHARES
1.5k
VIEWS
Share on FacebookShare on Twitter


CLI (Command Line Interfaces) ključan je u razvoju softvera i administraciji sustava. CLI-ovi su lagani tekstualni programi koji nude pojednostavljen način interakcije s računalima koji su pogodni za programere i napredne korisnike za višestruke slučajeve upotrebe, uključujući automatizaciju, skriptiranje i daljinsku administraciju.


Rust postaje sve popularniji za izradu CLI aplikacija. Rust pruža moćne značajke kao što je fina kontrola nad dodjelom memorije i sigurnošću niti, sigurnošću memorije, konkurentnošću i paralelizmom koje možete iskoristiti za izradu moćnih CLI aplikacija. Rust se također može pohvaliti uspješnim ekosustavom biblioteka i okvira koji su eksplicitno skrojeni za izgradnju CLI aplikacija.


Početak izrade CLI aplikacija s Rustom

Postoji nekoliko paketa trećih strana za izradu CLI aplikacija u Rustu, uključujući Pljesnuti, StructOpti Termion sanduke. Ovi sanduci pružaju značajke koje su vam potrebne za razvoj modernih CLI alata.

Također, Rust pruža a std::env sanduk u svojoj standardnoj biblioteci koja pruža funkcionalnost za rad s varijablama okruženja i argumentima naredbenog retka. The std::env sanduk nudi niz metoda i vrsta za rad s okruženjima na način neovisan o platformi.

Koristiti std::env sanduk, vaši Rust programi mogu komunicirati s okruženjem i prilagoditi svoje ponašanje na temelju različitih čimbenika, uključujući varijable okruženja, argumente naredbenog retka i trenutni radni direktorij.

Pokrenite ovu naredbu za stvaranje novog Rust projekta za vašu CLI aplikaciju s Cargom, Rustovim alatom za upravljanje paketima:

 cargo new crypto_cli

Naučit ćete kako izraditi CLI aplikaciju koja poziva Coinmarketcapov API s Reqwest sanduk koji pruža značajke za izradu HTTP zahtjeva u Rustu.

Otvori svoju Teret.toml datoteku i dodajte reqwest i tokio kutije u ovisnosti vašeg projekta:

 [dependencies]
tokio = { version = "1.15", features = ["full"] }
reqwest = { version = "0.11", features = ["json"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"

The tokio sanduk je asinkrona knjižnica za vrijeme izvođenja koja interoperira s reqwest za asinkrono programiranje. The serde i serde_json sanduci pomažu kod JSON serijalizacije i deserijalizacije.

u src mapu vašeg Rust projekta, kreirajte api.rs i cli.rs datoteke u kojima ćete implementirati API poziv i CLI funkcionalnosti.

 touch src/api.rs src/cli.rs

Naredba bi trebala stvoriti željene datoteke u radnom direktoriju vašeg projekta. Nakon što upišete funkcije u njihove određene datoteke za odvajanje problema, pozvati ćete funkcije u glavni funkcija u vašem glavni.rs datoteka.

Upućivanje API zahtjeva za CoinMarketCap API s Reqwestom

coinmarketcap logotip postavljen preko značajke grafikona

API CoinMarketCapa omogućuje vam pristup i integraciju podataka o kriptovaluti u njihove aplikacije. API pruža krajnje točke za popise, tržišne kotacije, informacije o razmjeni, alate za konverziju, povijesne podatke i metapodatke.

Kada se prijavite, možete se prijaviti za CoinMarketCap račun i dohvatiti svoj API ključ na Coinmarketcapovoj stranici za razvojne programere. Također možete pogledati dokumentaciju za detaljne upute i ograničenja stope.

Za upućivanje API zahtjeva na /v2/cryptocurrency/quotes/latest krajnja točka koja vraća najnoviju tržišnu kotaciju za jednu ili više kriptovaluta, morat ćete definirati strukture za podatke koje želite izdvojiti iz API-ja i odrediti atribute sa Serdeovom značajkom izvođenja.

Zatim možete zatražiti API do krajnje točke i koristiti serde_json sanduk za deserijalizaciju JSON podataka u strukturu za lakše operacije na Rust tipovima podataka.

Ovdje je definicija strukture koja dohvaća iskaznica, Ime, simbol, i citat podatke o navedenim kriptovalutama

 #[derive(Debug, Deserialize, Serialize)]
struct ApiResponse {
    data: Data,
}

#[derive(Debug, Deserialize, Serialize)]
struct Data {
    
    #[serde(rename = "1")]
    crypto_1: Cryptocurrency,

    #[serde(rename = "2")]
    crypto_2: Cryptocurrency,

    #[serde(rename = "3")]
    crypto_3: Cryptocurrency,

    #[serde(rename = "4")]
    crypto_4: Cryptocurrency,
}

#[derive(Debug, Deserialize, Serialize)]
struct Cryptocurrency {
    id: u32,
    name: String,
    symbol: String,
    
    quote: Quote,
}

#[derive(Debug, Deserialize, Serialize)]
struct Quote {
    USD: QuoteDetails,
}

#[derive(Debug, Deserialize, Serialize)]
struct QuoteDetails {
    price: f64,
    volume_24h: f64,
    
}

API vraća podatke koji mogu biti više nego što vam je potrebno, ali s serde sanduk, možete navesti točne podatke koji su vam potrebni, kao što je prikazano gore.

Sada možete zatražiti krajnju točku s Reqwestom stvaranjem novog klijenta koji šalje GET zahtjev sa potrebnim parametrima.

 use reqwest::Client;
use reqwest::Error;

pub async fn crypto() -> Result<(), Error> {
    let client = Client::new();

    let url = "https://pro-api.coinmarketcap.com/v2/cryptocurrency/quotes/latest";

    let params = [
        ("id", "1,2,3,4"),
        ("convert", "USD"),
    ];

    let response = client.get(url)
        .header("X-CMC_PRO_API_KEY", "YOUR API KEY HERE")
        .query(&params)
        .send().await?;
    ;

    let result: ApiResponse = serde_json::from_str(&*response.text().await?;).unwrap();

    println!("{:#?}", result);
    Ok(())
}

The kripto funkcija je asinkrona funkcija omogućena za Tokio koja zahtijeva krajnju točku s klijent.dobiti funkciju nakon stvaranja klijentske instance s Klijent::novo metoda.

The Zaglavlje poziv funkcije na instanci graditelja zahtjeva uzima vaš API ključ, upit funkcija preuzima parametre, a poslati funkcija šalje zahtjev.

The kripto funkcija deserijalizira JSON odgovor sa serde_json-om from_str metoda koja uzima JSON niz.

Konačno, kripto funkcija ispisuje rezultat operacije deserijalizacije na konzolu.

Dohvaćanje CLI argumenata u Rustu

U vašem cli.rs datoteku, uvest ćete kripto funkcija iz api.rs datoteku i pozovite funkciju ako korisnik unese “crypto” kao argument za pokretanje projekta s vožnja tereta naredba.

Evo kako možete koristiti std::env funkcija za dohvaćanje argumenta iz naredbenog retka:

 use std::env;
use crate::api::crypto;

pub async fn cli() {
    let args: Vec<String> = env::args().collect();

    if args.len() > 1 && args[1] == "crypto" {
        crypto().await.unwrap();
    } else {
        println!("Invalid command. Usage: cargo run crypto");
    }
}

The cli funkcija dohvaća sve argumente iz naredbenog retka s env::args().collect() funkcija. The ako-drugače naredba provjerava postoji li dodatni argument, “crypto”. Ako uvjet procjenjuje istinito, cli funkcija poziva kripto funkcija; inače, cli funkcija ispisuje niz na konzolu.

Konačno, možete nazvati cli funkcija u glavni funkcija. Morate dodati #[tokio::main] atribut jer glavni funkcije ne mogu biti asinkrone u Rustu.

 mod api;
mod cli;
use crate::cli::cli;

#[tokio::main]
async fn main() {
    cli().await;
}

The glavni funkcija poziva cli funkcija s čekati funkcija koja obustavlja izvršenje do rezultata a Budućnost je spreman.

Ovo je rezultat pokretanja cargo run kripto naredba:

rezultat podnošenja zahtjeva

Related articles

Coinone dovodi OKX kao novog dioničara na poziciju za financijsko tržište sljedeće generacije

Coinone dovodi OKX kao novog dioničara na poziciju za financijsko tržište sljedeće generacije

July 5, 2026
Zuckerberg kaže da Metin AI Agent Push kasni s rasporedom

Zuckerberg kaže da Metin AI Agent Push kasni s rasporedom

July 4, 2026

Možete izraditi sofisticirane web aplikacije u Rustu

Rust je svestran programski jezik s mnogo slučajeva upotrebe i aplikacija. Možete iskoristiti web okvire trećih strana kao što su Actix, Rocket i Warp za izradu web aplikacija u Rustu. Ti okviri pružaju većinu funkcija potrebnih za izradu modernih web-aplikacija.


Share76Tweet48

Previous Post

Izvršni direktor Binancea otkriva kada bi sljedeći porast cijena kripto mogao pogoditi nakon 27 trilijuna dolara bitcoina, Ethereuma, BNB-a i XRP bombe

Next Post

Shiba Inuov Shibarium Blockchain planira se lansirati u kolovozu: Spreman za ubijanje više nula

Related Posts

Coinone dovodi OKX kao novog dioničara na poziciju za financijsko tržište sljedeće generacije

Coinone dovodi OKX kao novog dioničara na poziciju za financijsko tržište sljedeće generacije

by CryptoVijest
July 5, 2026
0

Kim Seong-hwan, izvršni direktor Korea Investment & Securities, Song Byeong-jun, predsjednik Com2uS-a, Star Xu, izvršni direktor OKX-a, i Cha Myung-hoon,...

Zuckerberg kaže da Metin AI Agent Push kasni s rasporedom

Zuckerberg kaže da Metin AI Agent Push kasni s rasporedom

by CryptoVijest
July 4, 2026
0

Mark Zuckerberg rekao je osoblju Mete 3. srpnja da razvoj AI agenta nije ubrzan kako se očekivalo, iako gleda na...

Bitcoin ETF-ovi prekinuli niz odljeva od 2,7 milijardi dolara kao novi povrat kapitala

Bitcoin ETF-ovi prekinuli niz odljeva od 2,7 milijardi dolara kao novi povrat kapitala

by CryptoVijest
July 4, 2026
0

Ključni uvidi:Bitcoin ETF-ovi prekinuli su 10-dnevni niz povlačenja.Fidelity je doveo do priljeva dok je BlackRock povećao gubitke.BTC kripto sentiment ostao...

Binance Connectivity u 2026.: Zašto se neki trgovci sada oslanjaju na proxy poslužitelje

Binance Connectivity u 2026.: Zašto se neki trgovci sada oslanjaju na proxy poslužitelje

by CryptoVijest
July 4, 2026
0

NeoSoul planira integrirati OKX Agentic Wallet, unaprjeđujući sudjelovanje AI agenata u Onchain ekonomiji

NeoSoul planira integrirati OKX Agentic Wallet, unaprjeđujući sudjelovanje AI agenata u Onchain ekonomiji

by CryptoVijest
July 4, 2026
0

Singapur, 3. srpnja 2026 — Dana 30. lipnja 2026., NeoSoul je danas najavio planove za integraciju OKX Agentic novčanika, dajući...

Load More

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

  • Zašto kupujem Bitcoin u listopadu

    Zašto kupujem Bitcoin u listopadu

    1698 shares
    Share 679 Tweet 425
  • Kriptovalute, što trebate znati o njima, osnove!

    1641 shares
    Share 656 Tweet 410
  • Bored Ape #4096 prodan za 80 ETH – Ethereum (ETH/USD)

    1631 shares
    Share 652 Tweet 408
  • Najbolji filmovi o Bitcoinu i blockchainu

    1612 shares
    Share 645 Tweet 403
  • Je li u tijeku najveća kripto prevara u Hrvatskoj?

    1469 shares
    Share 588 Tweet 367

Kupite nam kavicu i podržite naš rad? :)

Recent News

Coinone dovodi OKX kao novog dioničara na poziciju za financijsko tržište sljedeće generacije

Coinone dovodi OKX kao novog dioničara na poziciju za financijsko tržište sljedeće generacije

July 5, 2026
Vijesti o kriptovalutama: AlphaPepe otkriva CEX partnerstvo s Biconomyjem dok predviđanje cijene Ethereuma cilja na 7000 USD

Vijesti o kriptovalutama: AlphaPepe otkriva CEX partnerstvo s Biconomyjem dok predviđanje cijene Ethereuma cilja na 7000 USD

July 5, 2026

Stranice

  • Home
  • Kontakt
  • Newsletter
  • Politika privatnosti

Prijavite se na naš povremeni newsletter

© 2022 All right reserved by kriptovijesti.net

Please enter Coingecko Free Api Key to get this plugin works
No Result
View All Result
  • Home
  • Vijesti
  • Bitcoin
  • Blockchain
  • Ethereum
  • Market
  • Guide
  • Kontakt

© 2022 All right reserved by kriptovijesti.net