# Your Basic Rust Workflow For the Noobie Rustacean

DevFeed: [Your Basic Rust Workflow For the Noobie Rustacean](<https://devfeed.tech/articles/your-basic-rust-workflow-for-the-noobie-rustacean-28321.md>)

Original publisher: [Read original article](<http://fuzzyblog.io/blog/rust/2020/05/08/your-basic-rust-workflow.html>)

Author: Fuzzygroup

Published: 2020-05-08T00:00:00Z

Content type: tutorial

Language: en

Sources: [Scott Johnson](<https://devfeed.tech/sources/scott-johnson.md>)

Topics: [Rust](<https://devfeed.tech/topics/rust.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>)

Tags: [performance](<https://devfeed.tech/tags/performance.md>), [python](<https://devfeed.tech/tags/python.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [rust](<https://devfeed.tech/tags/rust.md>), [workflow](<https://devfeed.tech/tags/workflow.md>)

## AI overview

This beginner-oriented tutorial introduces a basic Rust development workflow. It explains why Rust is being considered for high-performance file processing, then demonstrates creating a project with Cargo, editing source and dependency files, building, running, and inspecting the resulting project filesystem.

## Source excerpt

Note 1: The term Rustacean is the term for a developer who uses Rust. Learning a new language isn't just syntax and keywords, it is tooling, people in the ecosystem to trust and follow, workflows and more. For a particular project at my day job, I've hit the limits of Python and Ruby in terms of performance so I'm looking into Rust (the other suggested alternative is Elixir and that's tempting but Rust "feels" like a better match). Note 2: The underlying need is for high performance (think C like performance) file processing. I'm a firm believer in the power of languages and it is hard for me to conceive of starting a new project in 2020 in terms of C. Hence the choice of Rust. Go is theoretically another choice but Go's "Nanny State" approach to dependencies I find to be an extraordinary turn off. Here is the basic workflow for a noobie Rust developer: Note 3: The project I'm creating is called "datastreamer_to_sqs". Create a new project with: cargo new datastreamer_to_sqs Change into the directory: cd datastreamer_to_sqs Edit the main.rs file: vi src/main.rs Edit the dependencies file: vi Cargo.toml and add any crates (crates are Gems in the Ruby ecosystem and modules in the Python ecosystem) Build it: cargo build Run it: cargo run What a Rust Project's Filesystem Looks Like I'm a big believer in understanding how your tooling looks under the hood (such a big believer that I have a 52 minute Youtube lecture on your Rails directory structure). Here is what your initial Rust project looks like: tree -d . ├── src └── target └── debug ├── build │ ├── bitflags-5286617fe4cbd497 │ │ └── build_script_build-5286617fe4cbd497.dSYM │ │ └── Contents │ │ └── Resources │ │ └── DWARF │ ├── bitflags-6c9ee2bffe990008 │ │ └── out │ ├── libc-a4b511fa588bdb61 │ │ └── build_script_build-a4b511fa588bdb61.dSYM │ │ └── Contents │ │ └── Resources │ │ └── DWARF │ ├── libc-efb0751362c01003 │ │ └── out │ ├── ryu-7d41145565b2c286 │ │ └── build_script_build-7d41145565b2c286.dSYM │ │ └── Content