Skip to main content
ProductsDesktop toolsTASTECADDrawing reviewTASTEFILESFile managementTASTEFTPFile transferTASTESSHRemote workspaceTASTEZIPCompression and extractionDeveloper toolsTASTECODERust integrated development environmentTASTESTUDIOIntegrated development and test environmentTASTEETLData integration (ETL)ServersTASTEREMOTERemote desktop serverTASTEGEOGeospatial serverTASTEMAILMail workspaceGet startedDownloadsDocumentationBuyAll products
Marketplace
News
TechNewsToday's dev newsDeveloper docsProgramming languagesRustTypeScriptJavaScriptPythonGoC#JavaCC++KotlinDartWeb front-end frameworksNext.jsReactVue.js · NuxtSvelteKitAngularServer frameworksSpring BootDjangoFastAPIASP.NET CoreNestJS · ExpressApp & desktop frameworksTauriFlutterReact NativeElectronAlgorithmsAlgorithm basicsCore algorithmsAdvanced algorithmsPractical algorithms
CommunityProjectsDevelopment logsPromptsAI tool issuesShowcaseCommunity guide
Work with usTech transferWebsite buildDesktop app buildRelease and payment pipelineSales partnerContact
ServicesRemote desktopCustom installer packages
TASTEDEV
Products

Desktop tools

TASTECADComplex drawings, opened with easeTASTEFILESJust the files you need, as fast as possibleTASTEFTPThe tidiest path for your filesTASTESSHA stronger link between you and your serversTASTEZIPPack faster, unpack safer

Developer tools

TASTECODEEdit, build, debug and test Rust apps in one windowTASTESTUDIOFrom editing to remote tests and approved AI fixesTASTEETLMove data while you watch the values

Servers

TASTEREMOTEA remote desktop you run on your own serverTASTEGEORebuilding a GeoServer-compatible geospatial server in RustTASTEMAILTake back control of your email

Get started

DownloadsLatest builds of every productDocsHow to use each productBuySubscriptions and perpetual licencesAll productsEvery product at a glance
All products
MarketplaceNews
Tech

News

Today's dev newsOfficial announcements on languages, frameworks, GitHub and AIDeveloper docsGuides to languages, frameworks and algorithms

Programming languages

RustTypeScriptJavaScriptPythonGoC#JavaCC++KotlinDart

Frameworks

Web front-end frameworksNext.jsReactVue.js · NuxtSvelteKitAngular
Server frameworksSpring BootDjangoFastAPIASP.NET CoreNestJS · Express
App & desktop frameworksTauriFlutterReact NativeElectron

Algorithms

Algorithm basicsComplexity analysis · Sorting · Searching · Basic data structures · Trees and heapsCore algorithmsGraph traversal · Shortest paths & minimum spanning trees · Dynamic programming · Greedy algorithms · Divide and conquer · BacktrackingAdvanced algorithmsString algorithms · Math and number theory · Bit manipulation · Segment trees · Union-findPractical algorithmsCoding interview strategy · LRU cache · Rate limiting · Consistent hashing
All development docs
Community
ProjectsDiscover builders and their workDevelopment logsDecisions and lessons learnedPromptsReusable instructionsAI tool issuesProblems and workarounds for Claude, Codex, GeminiShowcaseFinished resultsCommunity guideHow we build in the open
Work with us
Tech transferNative apps in Rust and eguiWebsite build10 languages, accounts, docs and downloadsDesktop app buildRust and egui, no WebViewRelease and payment pipelineSigning, MSI, deb, rpm, AppImage, hashesSales partnerRecommend us and earn 30%ContactBuilds, partnerships and investment
Services
Remote desktopReach your computer from a browserCustom installer packagesOnly the features you need, settings preloaded
Buy
EN
한국어EnglishDeutschEspañolFrançaisItalianoPortuguês (Brasil)日本語简体中文繁體中文
Log in
Log in
TASTEDEV

From small tools to better development.

support@tastedev.netSupport TASTEDEV
ProductsProduct lineupBuyDocsDownloadsMarketplaceSupport
CommunityProjectsDevelopment logsPromptsAI tool issuesShowcase
PoliciesPrivacy policyTerms of serviceSubscription termsRefund policyCommunity guidelines
AccountLog inSign up
Visitors
Today
012345678901234567890123456789012345678901234567890123456789
Yesterday
012345678901234567890123456789012345678901234567890123456789
Total views
0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
Company
GXSOFT
Representative
CHOI YOUNG GU
Business registration number
853-44-00368
Address
9F V24, 351 Gyeongin-ro, Michuhol-gu, Incheon, Republic of Korea
Phone
+82-10-4404-1523
Email
whitecalvin@tastedev.net
Privacy officer
CHOI YOUNG GU

© 2026 TASTEDEVProduct information is based on verified development sources.Released · improving

Rust docs
Rust
Getting Started with RustSyntax BasicsTypes and DataModules and PackagesErrors and TestingKey Concepts: Ownership, Borrowing, Lifetimes, Traits
Discussions

Rust guide · 1/6

Getting Started with Rust

This chapter walks you from a fresh machine to a running Rust program. Along the way you will see how a Cargo project is laid out and how to set up an editor that makes the compiler feel like a helpful pair programmer rather than a gatekeeper.

Installing with rustup

The recommended way to install Rust is rustup, the official toolchain manager. One install gives you the compiler (rustc), the build tool and package manager (cargo), the standard library, the formatter (rustfmt) and the linter (clippy). rustup also handles upgrades later on.

On macOS and Linux, run:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

On Windows, download and run rustup-init.exe from rustup.rs. The default Windows toolchain links with MSVC, so you also need the C++ build tools from Visual Studio Build Tools; the installer will point you to them if they are missing.

Open a new terminal afterwards and confirm everything is on your PATH:

rustc --version
cargo --version

# Upgrade to the latest stable release at any time
rustup update

# Included in the default profile, but easy to add if missing
rustup component add rustfmt clippy

Rust ships on three channels: stable, beta and nightly. Stable is the right choice for nearly everything. If you ever need an unstable feature, install nightly alongside it with rustup toolchain install nightly. To pin a toolchain for one project only, commit a rust-toolchain.toml file at the project root.

Creating a project with cargo new

Almost every Rust project starts with Cargo. cargo new creates the directory, a manifest, a starter source file, and even initializes a Git repository.

cargo new hello
cd hello

# Use --lib for a library instead of an executable
cargo new my_utils --lib

Cargo.toml is the manifest: name, version, edition and dependencies. An edition is a bundle of language-level changes that a crate opts into; recent versions of Cargo default to the newest edition.

[package]
name = "hello"
version = "0.1.0"
edition = "2024"

[dependencies]

src/main.rs holds the main function, the entry point of the program. Note the exclamation mark in println!: it marks a macro, not a regular function call.

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

Building and running

These are the Cargo commands you will reach for daily:

CommandWhat it does
cargo buildDebug build into target/debug/
cargo runBuild, then run the binary
cargo checkType-check without producing a binary
cargo build --releaseOptimized build into target/release/
cargo testRun the test suite
cargo fmtFormat the code
cargo clippyLint for common mistakes and idioms
cargo doc --openBuild docs for your crate and its dependencies

Make cargo check a habit while you code. It skips code generation, so it is much faster than a full build. When you measure performance, always use --release: unoptimized debug builds can be dramatically slower.

Arguments for your program go after --. Put the following in src/main.rs and try cargo run -- Alice Bob:

use std::env;

fn main() {
    // The first argument is the program path, so skip it
    let names: Vec<String> = env::args().skip(1).collect();

    if names.is_empty() {
        println!("Pass one or more names as arguments.");
        return;
    }

    for name in &names {
        println!("Hello, {name}!");
    }
}

Project layout

Cargo relies on conventions, so files placed in the expected spots are picked up with zero configuration:

  • Cargo.toml: package metadata and dependencies
  • Cargo.lock: exact resolved dependency versions (generated; commit it for applications)
  • src/main.rs: entry point of a binary crate
  • src/lib.rs: root of a library crate (a package may have both)
  • src/bin/*.rs: additional binaries, one per file
  • tests/: integration tests
  • examples/: runnable examples via cargo run --example name
  • target/: build output, keep it out of version control

Setting up your editor

The heart of a good Rust setup is rust-analyzer, the language server. It powers completion, inline type hints, go-to-definition and refactorings. In VS Code, install the rust-analyzer extension published by rust-lang. RustRover from JetBrains, Zed, and Neovim with an LSP client are popular alternatives.

To format on save and run clippy instead of plain cargo check in VS Code, add this to settings.json:

{
  "[rust]": {
    "editor.formatOnSave": true
  },
  "rust-analyzer.check.command": "clippy"
}

If your team wants different formatting rules, drop a rustfmt.toml in the project root. Most projects stick with the defaults, which keeps code looking the same across the whole ecosystem.

max_width = 100

Summary

  • rustup installs and updates rustc, cargo, rustfmt and clippy in one go.
  • cargo new scaffolds a project and cargo run builds and runs it.
  • Use cargo check for fast feedback and cargo build --release for anything performance-related.
  • Install rust-analyzer and let your editor run rustfmt and clippy for you.
Questions about this chapter?
Next chapterSyntax Basics

0 comments

Top commentsNewest first

Sign in · Sign in to leave a comment.