Track
A modern systems programming language focused on performance and safety. Learn how to build fast, reliable, and memory-efficient applications with Rust.
Start here
A command-line tool that reads a file containing Markdown text, parses it, and generates a corresponding HTML file. This project is a great introduction to file I/O, string manipulation, and basic parsing logic in Rust without complex dependencies.
Sign in to track progress
Basic
5 projectsA command-line tool that reads a file containing Markdown text, parses it, and generates a corresponding HTML file. This project is a great introduction to file I/O, string manipulation, and basic parsing logic in Rust without complex dependencies.
A CLI tool that processes a log file (e.g., a web server access log) to extract and display useful statistics. For example, it could count the number of 404 errors, list the top 10 most visited IP addresses, or count requests per HTTP method.
A simple quiz game that asks users a series of questions and keeps track of the score. The game will include multiple-choice questions and will store them in a file or a simple data structure.
A tool that organizes files in a directory by moving them into folders based on their type (e.g., images, documents, music).
A tool that generates random, secure passwords based on user-defined criteria (length, characters included).
Intermediate
6 projectsA command-line application that allows two users on the same local network to send files directly to each other without a central server. This project is a fantastic exercise in networking, concurrency, and data serialization.
Create a minimalist, terminal-based text editor, similar to a very simplified version of Vim or Nano. This project forces you to think about application state, user input loops, and direct terminal manipulation, which are great intermediate challenges.
Build a web scraper that can fetch and parse data from multiple web pages concurrently to improve performance. The tool could, for example, scrape product titles and prices from an e-commerce category page and its subsequent pages, saving the results to a CSV file.
A command-line tool that fetches and displays the current weather for a given location using an API.
A tool that allows users to track their expenses and income, storing data in a CSV file.
A simple implementation of the classic Tic-Tac-Toe game for two players.
Advanced
6 projectsCreate a minimal 2D game engine that compiles to WebAssembly (WASM) and runs in a web browser. The engine will provide basic functionalities like rendering sprites, handling user input, and a game loop. This project is a gateway into the world of Rust for web development and game development.
Implement a simplified distributed key-value store, similar to Redis or etcd. Multiple instances (nodes) of the application can be run, and they will communicate to replicate data, providing fault tolerance. This is a deep dive into distributed systems, networking, and advanced concurrency.
Dive into Rust's powerful metaprogramming by creating a custom `derive` procedural macro. A great example is a `Builder` macro that, when applied to a struct, automatically generates a builder pattern implementation for it, allowing for fluent and readable object construction.
A network server that handles multiple clients concurrently using Rust's concurrency model.
A basic ray tracing program that renders simple 3D scenes with spheres and planes.
A program that generates and displays fractal patterns (e.g., Mandelbrot set) using Rust.
Expert
5 projectsDesign a small, custom programming language and write a compiler for it in Rust that targets LLVM. This involves the full compiler pipeline: lexing, parsing, semantic analysis, and code generation. It is a monumental project that teaches language design and the deep internals of how code is compiled.
Embark on the ultimate systems programming challenge: writing a minimalist 64-bit operating system kernel in Rust. This project involves writing code that runs on bare metal, without any underlying OS. You will learn about low-level hardware interaction, memory management, and the boot process.
A custom asynchronous task executor that manages and runs tasks concurrently.
A custom library for compressing and decompressing data using a simple algorithm.
A basic interpreter for a custom programming language written in Rust.