Table of Contents
Hey Everyone! Today I have curated a massive list of 25+ Rust projects for beginners with source code. Rust is one of the most loved programming languages, known for its performance and memory safety. Whether you are just starting or looking to build a portfolio, these projects are updated and available on GitHub.
If you want to master Rust, there is no better way than getting your hands dirty with real-world applications. You can check out my GitHub for more curated lists, projects, and much more. If you want to contribute, feel free to open a Pull Request!
Without any further ado, let’s start! 🚀
The 25+ Rust Projects for beginners with source code are –
1. Command-Line Guessing Game
The classic “Guess the Number” game. This is the perfect first project for any Rust learner. It introduces fundamental concepts like user input/output handling, random number generation using the rand crate, variable mutability, conditional logic (match statements), and looping. It is a simple, interactive way to get comfortable with the Rust compiler and standard library.
rand
2. CLI Calculator
A simple command-line calculator that takes mathematical expressions and outputs the result. This project helps practice parsing command-line arguments using std::env::args, handling data types, error handling with Result and Option, and basic string manipulation. You can extend it later to support complex expressions using Abstract Syntax Trees (AST).
3. To-Do List CLI App
Build a task manager that runs entirely in your terminal. You will learn how to read, write, and update files persistently. This project covers file I/O operations, serialization/deserialization (using JSON or plain text), working with structs and vectors, and creating a structured command-line interface using popular crates like clap.
clap, serde
4. Weather Fetcher API
A terminal application that asks the user for a city name and fetches real-time weather data from an external API (like OpenWeatherMap). This is a fantastic introduction to making asynchronous HTTP requests in Rust using reqwest, handling JSON responses with serde_json, and managing API keys securely using environment variables.
reqwest, tokio, serde
5. URL Shortener
Create a backend service that takes a long URL, generates a unique short code, and redirects users when they visit the short link. This project introduces web frameworks in Rust like Actix-web or Axum, routing, handling HTTP GET and POST requests, and basic database integration (using SQLite or a simple Hash Map for in-memory storage).
6. Markdown to HTML Converter
A utility tool that reads a Markdown file (.md) and converts it into a formatted HTML file. You will learn text parsing, string replacement, working with external libraries (crates) to handle specific logic, and file system manipulation. It’s highly practical and mimics what static site generators do under the hood.
| Technologies Used: Rust, String manipulation, File I/O7. Password Generator
A secure password generator that allows users to specify the length and character types (uppercase, lowercase, numbers, symbols). This project is excellent for practicing random number generation, looping, command-line arguments, and writing clean, testable functions.
| Technologies Used: Rust,rand, clap
8. Bulk File Renamer
An automation script that traverses a directory and renames files based on specific patterns (like adding prefixes, changing extensions, or appending dates). You will get deep into Rust’s std::fs and std::path modules, learning how to safely manipulate the file system and handle edge cases like missing files or permission errors.
9. Pomodoro Timer
A productivity timer for the terminal that tracks work and break intervals (e.g., 25 minutes work, 5 minutes break). This project introduces time and duration handling using std::time, creating simple terminal user interfaces (TUI) with crates like crossterm or ratatui, and playing system sounds for notifications.
std::time, TUI libraries
10. Simple Multi-threaded Web Server
Build a basic HTTP server from scratch using standard library components. You will learn the fundamentals of TCP/IP, parsing HTTP requests, handling multiple connections concurrently using Rust’s thread pools, and understanding how fearless concurrency works without data races.
| Technologies Used: Rust, TCP Listeners, Thread Pools11. Typing Speed Test (TUI)
A terminal-based application that measures a user’s typing speed (Words Per Minute) and accuracy. This requires building an interactive Terminal User Interface, capturing real-time keyboard inputs, calculating statistics dynamically, and rendering a clean layout on the screen.
| Technologies Used: Rust,ratatui, crossterm
12. TCP Port Scanner
A networking tool that scans an IP address to find open ports. It’s a highly requested cybersecurity project. You will learn about Rust’s std::net::TcpStream, timeouts, asynchronous programming (to scan multiple ports simultaneously without waiting), and network error handling.
tokio
13. Discord Bot
Create a bot for your Discord server that can reply to commands, fetch memes, or moderate messages. You will use the popular serenity crate, learning how to work with WebSockets, asynchronous event loops, external API wrappers, and managing bot permissions.
serenity, tokio
14. System Monitor (Task Manager)
A lightweight, terminal-based alternative to htop or Task Manager. You will use crates like sysinfo to fetch CPU usage, RAM allocation, and running processes, displaying them dynamically in the console. Great for systems programming practice.
sysinfo, TUI
15. QR Code Generator
A script that takes a URL or string input and generates a PNG image of a QR code. This project introduces you to image processing in Rust, using external crates for encoding data, and working with binary file outputs.
| Technologies Used: Rust,qrcode, image
16. Mini Static Site Generator
Write a program that takes a folder of Markdown files, applies an HTML template, and outputs a complete, ready-to-deploy static website. You will master file traversal, templating engines (like Tera or Askama), and data structures.
tera, Markdown parsing
17. Snake Game (Terminal)
The classic Nokia Snake game built entirely in the terminal. You will handle game loops, state management (coordinates of the snake and food), collision detection, and rendering frames at a specific frames-per-second (FPS) rate.
| Technologies Used: Rust,crossterm, Game Logic
18. Tic-Tac-Toe (CLI)
A simple 2-player game in the console. You will learn about 2D arrays (matrices), taking turns in a loop, validating user inputs, and writing logic to check for winning conditions (rows, columns, diagonals).
| Technologies Used: Rust, Arrays, Logic loops19. Terminal Text Editor (Like Nano)
Build a functional text editor from scratch. Following the “Hecto” tutorial style, you will learn raw terminal manipulation, cursor positioning, keyboard event handling, and buffer management. This is a challenging but incredibly rewarding project.
| Technologies Used: Rust,termion
20. Simple JSON Parser
Instead of using serde, write your own basic parser that takes a JSON string and converts it into a Rust HashMap or Struct. This teaches you tokenization, Abstract Syntax Trees (AST), and the inner workings of compilers and interpreters.
21. Base64 Encoder/Decoder
Implement the Base64 encoding algorithm from scratch. You will work with raw bytes, bitwise operations (shifts and AND/OR logic), and understanding how data is encoded for network transmission. Great for low-level programming practice.
| Technologies Used: Rust, Bitwise Operations22. Key-Value In-Memory Database
Build a Redis-clone that stores data in memory. You will learn about Rust’s collections (HashMaps), concurrency (Mutex and RwLock), handling TCP connections, and designing a simple custom query protocol (like GET, SET, DELETE).
| Technologies Used: Rust, HashMaps,tokio
23. Simple Regex Engine
Write a program that can match basic regular expressions (like *, ., ^, $). This dives deep into finite automata, string traversal, and pattern matching algorithms without relying on the built-in regex crate.
24. TCP Chat Application
A multi-client chat room. You will build a central server that broadcasts messages to all connected clients. It covers asynchronous I/O, managing multiple active sockets, and separating read/write streams securely.
| Technologies Used: Rust, TCP,tokio
25. Web Scraper
A script that downloads a webpage, parses the HTML, and extracts specific data (like article titles or prices). You will use HTTP clients and HTML parsers (like scraper or select.rs) to navigate the DOM efficiently.
reqwest, scraper
26. Image Resizer CLI
A command-line tool that takes a folder of large images and resizes them to a specified dimension. You will learn about image compression, batch processing using iterators, and optimizing CPU bound tasks using rayon for multithreading.
image, rayon
27. Mini Git Clone
Recreate the basic functionality of Git (like init, add, commit) from scratch. You will learn about hashing (SHA-1), zlib compression, interacting with the file system intricately, and understanding how distributed version control works internally.
Conclusion
This is the ultimate list of Updated 25+ Rust Projects for beginners. Whether you want to build blazing-fast CLI tools, backend APIs, or terminal games, Rust gives you the performance and safety you need. If you want to dive deeper, grab a project, read the source code on GitHub, and start building!
If you found this list helpful, feel free to share it or open a Pull Request to add your own project to my repository.
Related Articles
- Powerful & Reliable Guide: ms-python.python VSIX Download Without Mistakes
- Azure OpenAI vs OpenAI: The Critical Differences Most Teams Miss
- Azure Responsible AI Dashboard: The Day the Model Looked “Perfect” and Still Failed
- Migrating from Poetry to uv Guide: Why I Finally Let Go of My Lockfile Comfort