A comprehensive Rust learning knowledge base built with Obsidian
🚀 Quick Start • 📚 Documentation • 🎯 Features • 🤝 Contributing
English | 简体中文
This is a Knowledge Accumulation Workflow (KAW) system built in Obsidian, designed to help you systematically learn and master the Rust programming language. It combines the power of bidirectional linking, atomic notes, and visual knowledge graphs.
- ✅ Structured Learning Path - From zero to hero with clear roadmaps
- ✅ Interconnected Knowledge - Build a web of concepts with bidirectional links
- ✅ Progress Tracking - Monitor your learning journey
- ✅ Code Snippet Library - Reusable examples at your fingertips
- ✅ Problem Solving - Document challenges and solutions
- ✅ Review System - Spaced repetition for long-term retention
- ✅ WebAssembly Focus - Special resources for Rust + WASM development
- Obsidian - Download here (Free)
- Rust (optional) - Install Rust
# Clone this repository
git clone https://github.com/Desperado1001/rust-learning-vault.git
# Open in Obsidian
# 1. Launch Obsidian
# 2. Click "Open folder as vault"
# 3. Select the cloned rust_vault folderOnce opened in Obsidian, navigate to:
00-Index/Rust-MOC.md- 📍 Your starting point (Master Index)00-Index/Learning-Roadmap.md- 🗺️ Complete learning path00-Index/Setup-Guide.md- ⚙️ Development environment setup
rust_vault/
│
├── 📍 00-Index/ # Start Here!
│ ├── Rust-MOC.md # 🌟 Master Map of Content
│ ├── Learning-Roadmap.md # Complete learning pathway
│ ├── Setup-Guide.md # Environment setup
│ └── How-To-Use-This-Vault.md # Usage guide
│
├── 📘 01-Fundamentals/ # Core Concepts
│ ├── Ownership.md # Memory management
│ ├── Borrowing.md # References & borrowing
│ ├── Lifetimes.md # Lifetime annotations
│ └── ...
│
├── 🎓 02-Advanced-Concepts/ # Advanced Topics
│ ├── Traits.md # Trait system
│ ├── Generics.md # Generic programming
│ ├── Macros.md # Macro system
│ └── ...
│
├── 📦 03-Standard-Library/ # Std Library Reference
│ ├── Collections/
│ ├── Iterators/
│ └── ...
│
├── 🌐 04-Ecosystem/ # Crates & Tools
│ ├── Cargo.md # Package manager
│ ├── Crates/
│ │ ├── Serde.md
│ │ ├── Tokio.md
│ │ └── ...
│ └── ...
│
├── 🎨 05-Patterns-and-Practices/ # Best Practices
│ ├── Design-Patterns/
│ ├── Error-Handling/
│ └── ...
│
├── 🚀 06-Projects/ # Hands-on Projects
│ ├── Rust-Web-Projects.md # Web development guide
│ ├── Rust-WebAssembly-Guide.md # WASM comprehensive guide
│ ├── WASM-Quick-Reference.md # WASM quick reference
│ └── ...
│
├── 💾 07-Code-Snippets/ # Reusable Code
│ └── (Your code examples)
│
├── 📅 08-Daily-Learning/ # Learning Journal
│ └── (Daily notes)
│
├── ❓ 09-Questions-and-Answers/ # Problem Solving
│ └── (Q&A documentation)
│
└── 📝 10-Templates/ # Note Templates
├── Concept-Template.md
├── Daily-Learning-Template.md
└── Code-Snippet-Template.md
Create a knowledge web with [[double brackets]]:
Understanding [[Ownership]] requires knowledge of [[Borrowing]] and [[Lifetimes]].Organize with multi-dimensional tags:
#rust #concept #ownership #fundamental #learning- Press
Ctrl/Cmd + Gto see your knowledge network - Identify knowledge gaps and connections
- Track learning progress visually
Quick-start notes with pre-built templates:
- Concept Template - For learning new concepts
- Daily Learning Template - Daily progress tracking
- Code Snippet Template - Reusable code examples
Ctrl/Cmd + Shift + F- Global searchtag:#rust- Search by tagspath:06-Projects- Search in specific folders
graph LR
A[Start Day] --> B[Create Daily Note]
B --> C[Learn New Concept]
C --> D[Create Concept Note]
D --> E[Add Code Snippets]
E --> F[Link Related Concepts]
F --> G[Review & Practice]
G --> H[Update Progress]
- 📅 Morning - Create daily note using template
- 📖 Study - Learn from resources, create concept notes
- 💻 Practice - Code along, save useful snippets
- 🔗 Connect - Link new concepts to existing knowledge
- ❓ Document - Record questions and solutions
- 📊 Review - Check graph view, identify weak areas
- 🌙 Evening - Update daily note with progress
- ✅ Daily Notes - Automatic daily note creation
- ✅ Templates - Template insertion
- ✅ Graph View - Visual knowledge map
- ✅ Backlinks - See all references
| Plugin | Purpose | Priority |
|---|---|---|
| Calendar | Visual calendar for daily notes | ⭐⭐⭐ |
| Dataview | Query and display data dynamically | ⭐⭐⭐ |
| Templater | Advanced template features | ⭐⭐⭐ |
| Tasks | Task management with advanced queries | ⭐⭐ |
| Kanban | Kanban board for project tracking | ⭐⭐ |
| Excalidraw | Draw diagrams and sketches | ⭐⭐ |
This vault comes with a complete Obsidian configuration pre-installed! Just open it in Obsidian and start learning—no setup required.
The .obsidian folder contains:
- ✅ Core Plugins - All essential features enabled (Graph, Templates, Daily Notes, etc.)
- ✅ Custom Hotkeys - Productivity-boosting keyboard shortcuts
- ✅ Graph Colors - Each folder has a distinct color for visual clarity
- ✅ Template Setup - Automatic template folder configuration
- ✅ Daily Notes Config - Pre-configured with custom location and template
- ✅ Optimized Settings - Readable fonts, spellcheck, auto-linking, and more
| Action | Windows/Linux | Mac |
|---|---|---|
| Quick Switcher | Ctrl + O |
Cmd + O |
| Command Palette | Ctrl + Shift + P |
Cmd + Shift + P |
| Open Graph | Ctrl + G |
Cmd + G |
| Open Today's Note | Ctrl + Shift + D |
Cmd + Shift + D |
| Insert Template | Ctrl + T |
Cmd + T |
| Toggle Bold | Ctrl + B |
Cmd + B |
See .obsidian/README.md for the complete hotkey list!
The knowledge graph is color-coded by folder:
- 🔴 Index (Red) • 🟠 Fundamentals (Orange) • 🟡 Advanced (Yellow)
- 🟢 Standard Library (Green) • 🔵 Ecosystem (Cyan) • 🟣 Projects (Purple)
All settings can be customized through:
- Settings (
Ctrl/Cmd + ,) → Appearance, Hotkeys, Plugins - Your changes are saved automatically
- See
.obsidian/README.mdfor detailed configuration guide
- 🗺️ Learning Roadmap - Complete learning path
- 📖 Rust Web Projects - 10 curated projects (5 beginner + 5 production)
- 🌐 WebAssembly Guide - Comprehensive WASM tutorial
- ⚡ WASM Quick Reference - Instant lookup guide
| Resource | Type | Link |
|---|---|---|
| The Rust Book | 📖 Official Guide | rust-book |
| Rust by Example | 💻 Interactive | rust-by-example |
| Rustlings | 🎮 Exercises | rustlings |
| Rust std docs | 📚 API Reference | std-docs |
| Rust WASM Book | 🌐 WASM Guide | rustwasm-book |
- Atomic Notes - One concept per note
- Link Everything - Connect at least 3 related concepts
- Use Examples - Include code snippets
- Regular Reviews - Spaced repetition: 1d, 3d, 7d, 30d
# Type Tags
#concept #snippet #project #question #resource
# Difficulty
#easy #medium #hard
# Status
#learning #understood #mastered #review
# Topic
#ownership #async #macros #wasm #web- Morning - Review yesterday's notes
- Midday - Learn new concepts, practice
- Evening - Summarize in daily note
cd rust_vault
git init
git add .
git commit -m "Daily learning update"
git push- Obsidian Sync (Official, paid)
- Syncthing (Free, self-hosted)
- OneDrive / Dropbox / iCloud
TABLE status, difficulty, reviewed
FROM #concept
WHERE contains(file.folder, "01-Fundamentals")
SORT status DESC
Maintain checklists in your MOC file.
I'm new to Obsidian, where do I start?
- Open
00-Index/Rust-MOC.md- Your command center - Read
How-To-Use-This-Vault.md- Learn the workflow - Create your first daily note
- Start learning from
Learning-Roadmap.md
How do I use templates?
- Create a new note
- Type
/templateand select the desired template - Or manually copy from
10-Templates/
Can I modify the structure?
Absolutely! This is YOUR vault. Adapt it to your learning style.
How do I contribute?
See Contributing section below!
Contributions are welcome! Here's how you can help:
- ⭐ Star this repo - Show your support
- 🐛 Report bugs - Open an issue
- 💡 Suggest improvements - Share your ideas
- 📝 Add resources - Submit PRs with new content
- 🎨 Share templates - Create new templates
📖 Read our detailed Contributing Guide (中文版) for complete guidelines on:
- How to set up your development environment
- Content guidelines and style guide
- Pull request process
- Community standards
- Fork this repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Obsidian - The amazing knowledge base tool
- Rust Community - For excellent resources
- All contributors and learners using this vault
Open in Obsidian • View Learning Roadmap • Join Discussions
Made with ❤️ by Paolo Zhao
"The Rust compiler is your friend!" 🦀
Last Updated: October 27, 2025 | Version: 0.1.0