https://github.com/rustfinity/rustfinity
Learn and Practice the Rust programming language the effective way.
https://github.com/rustfinity/rustfinity
learning practice rust
Last synced: 11 months ago
JSON representation
Learn and Practice the Rust programming language the effective way.
- Host: GitHub
- URL: https://github.com/rustfinity/rustfinity
- Owner: rustfinity
- License: other
- Created: 2024-05-01T03:52:43.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-02-15T15:21:13.000Z (12 months ago)
- Last Synced: 2025-02-15T16:24:02.019Z (12 months ago)
- Topics: learning, practice, rust
- Language: Rust
- Homepage: https://rustfinity.com
- Size: 488 KB
- Stars: 652
- Watchers: 2
- Forks: 20
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome - rustfinity/rustfinity - Learn and Practice the Rust programming language the effective way. (<a name="Rust"></a>Rust)
README
[](https://rustfinity.com)
# Rustfinity
Rustfinity is an **interactive learning platform** dedicated to helping Rust developers of all levels learn and practice Rust programming concepts.
**[Visit our website β rustfinity.com](https://rustfinity.com)** to explore challenges, tutorials, and everything you need to level up your Rust skills!
> **Why Rustfinity?**
>
> - **Hands-on Learning**: Practice your Rust skills with real challenges in a fun environment.
> - **Comprehensive Exercises**: From basics to advanced topicsβthereβs something for everyone.
> - **Engaging Community**: Contribute, discuss, and grow alongside other Rust enthusiasts!
---
## Table of Contents
- π [Getting Started](#-getting-started)
- π [Folder Structure](#-folder-structure)
- [challenges/](#challenges)
- [crates/](#crates)
- π€ [Crates](#-crates-details)
- [cli](#cli)
- [rustfinity-runner](#rustfinity-runner)
- [syntest](#syntest)
- β€οΈ [Contribute](#-contribute)
- π [Local Development](#-local-development)
- π [Follow Us](#-follow-us)
- βοΈ [License](#-license)
---
## π Getting Started
1. **Head to [rustfinity.com](https://rustfinity.com)**
Explore available challenges and pick the ones you want to tackle.
2. **Try out the `cli` crate (optional)**
You can download challenges and practice them locally right from your terminal.
3. **Dive into the code**
Explore this repository to see how challenges and crates are structured.
---
## π Folder Structure
```bash
.
βββ challenges/
β βββ challenge-1/
β β βββ description.md
β β βββ src/
β β β βββ lib.rs
β β β βββ starter.rs
β β βββ tests/
β β βββ tests.rs
β βββ challenge-2/ (and so on...)
βββ crates/
βββ cli
βββ rustfinity-runner
βββ syntest
```
### challenges/
This directory holds all the coding challenges served on [rustfinity.com](https://rustfinity.com). Feel free to submit new challenges, improve existing ones, or solve them locally using our CLI.
### crates/
This folder contains multiple Rust crates that power the Rustfinity platform.
---
## π€ Crates
### `cli`
- **What is it?**
The Rustfinity Command-Line Interface to help you **download, solve, and submit** Rustfinity challenges locally.
- **Key Features**
- Download any challenge directly to your local environment
- Submit solutions with `rustfinity submit` which redirects you to the challenge page with your solution
- **What is it?**
A crate designed for running challenge tests inside a secure Docker container.
- **Key Features**
- Spins up a temporary Docker container to safely execute user code
- Logs outputs and results from test runs
- Ensures a clean environment for each challenge submission
### `syntest`
- **What is it?**
A specialized testing library built on top of Rustβs [`syn`](https://docs.rs/syn) library to analyze and validate Rust code syntax.
- **Key Features**
- Parse Rust AST (Abstract Syntax Tree) for testable patterns
- Provides an easy interface for writing **syntax-based** tests
- Helps ensure your Rust code meets style and syntactic guidelines
---
## β€οΈ Contribute
Weβd love your help! Whether itβs fixing bugs, adding challenges, or improving docs, every bit of help **matters**.
1. **Check out our [issues](https://github.com/dcodesdev/rustfinity.com/issues)**: Found a bug or want to suggest an enhancement? Open an issue!
2. **Fork & PR**: Fork the repo, make changes, and submit a pull request.
3. **Join our Discord**: [Join our Discord server](https://discord.gg/8GRcUqY48B) to discuss ideas, ask questions, or just hang out with the community.
4. **Spread the word**: Share Rustfinity with your friends, colleagues, or on social media.
---
## π Local Development
Ready to hack on Rustfinity locally? Hereβs how:
```bash
# 1. Clone the repository
git clone https://github.com/dcodesdev/rustfinity.com.git
cd rustfinity.com
# 2. (Optional) Switch to a new branch for your work
git checkout -b my-new-feature
# 3. Explore and build
cargo build
```
We recommend installing [Docker](https://www.docker.com/) if you want to test the `rustfinity-runner` crate in a containerized environment.
---
## π Follow Us
Stay updated with the latest challenges, features, and announcements!
---
## Star History
[](https://star-history.com/#rustfinity/rustfinity&Date)
---
## βοΈ License
This project is licensed under the [Rustfinity Proprietary License](https://github.com/dcodesdev/rustfinity.com/blob/main/LICENSE).