🦀 The Land of Rust – A Space Crab Teaches Kids (and Adults) to Code
A few months ago I started writing a Rust book for my own children – no dry syntax, no boring explanations. Just a story: a curious space crab named Ferris crashes his spaceship on Earth and has to talk to an old computer. The only language it understands is Rust.
Today I’m proud to share where this project has landed.
✨ What’s new (May 2026)
- ✅ 20 chapters fully written in Persian – from “Hello, World!” to a multi‑client chat room.
- ✅ English chapters 1–12 rewritten based on community feedback (parent sidebars, normalising complexity, “computer wizard” framing).
- ✅ A bilingual interactive web demo (MVP) – all 20 chapters, no installation, works in any browser. 👉 https://huvaxstra.github.io/land-of-rust/
- ✅ Detailed illustration prompts for ~100 images – ready for a professional artist.
- ✅ Sponsorship call open – to illustrate, translate the remaining advanced chapters into English, and add live Rust execution (WASM).
📖 How the book works

Every chapter is a step in Ferris’s adventure. Abstract concepts become tangible metaphors:
- Ownership = a toy borrowing club with clear rules.
- Borrowing = a library card instead of giving away the toy.
- Lifetimes = yogurt expiration dates (see Appendix A).
- Traits = clay molds that shape different objects the same way.
- Async = an underwater pearl farm (bonus chapter).
No prior programming experience is needed – just curiosity and a computer.
🎮 Try the interactive demo

The demo is bilingual (English / Persian) and includes all 20 chapters.
You can click through, read the code examples, and follow Ferris’s journey.
Live code execution is not yet implemented – that’s part of our next milestone.
🔗 The Land of Rust – Interactive Demo
🎯 What’s missing (and why I’m asking for help)
To turn the current MVP into a polished, world‑ready resource, we need funding for:
| Area | Cost estimate |
|---|---|
| Professional illustrations (~100 images) | $1,000 – 2,500 (essential) / $4,000 – 8,000 (full) |
| English translation of advanced chapters (13–20) | $800 – 1,500 |
| Full interactive platform with live Rust execution (WASM) | $10,000 – 25,000 |
Sponsorship tiers (Bronze $100 to Platinum $5,000+) are described in SPONSORSHIP.md.
If you or your company can help – or if you know someone who might – please email me directly: jgh.rust@gmail.com.
📚 Current status of the book (at a glance)
| Level | Chapters | English | Persian |
|---|---|---|---|
| Beginner (9–11) | 1–4 | ✅ Complete | ✅ Complete |
| Intermediate (12–14) | 5–12 | ✅ Complete | ✅ Complete |
| Advanced (15+) | 13–20 | 📝 Planned | ✅ Complete |
| Appendices & Bonus | – | 📝 Planned | ✅ Complete |
All Persian content is already finished. The interactive demo is already working (static content).
🙏 Why I’m sharing this here
Dev.to has always been a home for thoughtful, passionate writing about code. I believe the best educational projects are built with the community, not in isolation.
If you’re a teacher, a parent, a developer, or a student – please:
- ⭐ Star the repo on GitHub – github.com/huvaxstra/land-of-rust
- 📢 Share the interactive demo with someone who might use it
- 💰 Sponsor the project or help us find sponsors
- 🐛 Open an issue if you spot a mistake or have an idea
💌 Final words
Writing this book has been the most rewarding technical project of my life.
My goal is simple: make Rust joyful for a 9‑year‑old, an absolute beginner, and anyone who was ever told “programming is too hard for you.”
Ferris the crab is waiting. The spaceship is repaired. The adventure continues. 🦀🚀
Jafar (huvaxstra)

Top comments (4)
Bilingual interactive demo with Persian + English from chapter 1 is
the smart move. I run a bilingual learning project (RU/EN) and the
second-language pipeline is usually where things break. Your status
table showing English advanced chapters as "Planned" while Persian
is complete maps to a pattern I see often: the author writes in the
strong language fast, translation lags, and the project ships in
only one locale for six months.
One thing that helped us: treat canonical content as locale-tagged
from day 1, even if you only have one locale filled in. Adding the
second language later becomes a content task, not a refactor. Did
you structure your chapter content that way, or are Persian and
English versions separate sources?
Great question, and thank you for the thoughtful feedback!
You’re right – I’m following the classic pattern: write fast in the stronger language (Persian), then translate later. Right now Persian and English are completely separate source files (different Markdown files, different folders). I didn’t implement a locale‑tagged canonical format from day one.
That’s partly because the Persian version was written and polished before I started the English translation. Changing the structure now would be a big refactor. But your idea (canonical content with locale tags) is excellent – it would make adding new languages a pure content task instead of a structural mess.
For the next major revision, I’ll definitely consider moving to a single‑source model (maybe with something like gettext or a custom YAML frontmatter) to avoid the second‑language lag. Thanks for the concrete advice – it’s rare to get such practical feedback from real bilingual project experience.
Out of curiosity: how do you handle code examples in your locale‑tagged system? Do you keep them exactly the same across languages, or do you translate comments and variable names too?
Thanks again – really helpful. 🦀
Code examples have what I'd call canonical tokens that shouldn't get
translated. For us those are Bible verses, they have a fixed published
form in each language (KJV English, Synodal Russian) and an LLM
paraphrase is wrong by definition. We pull them out of the source
before sending to the model, translate the surrounding prose, then
substitute the canonical verse for the target language back in.
For code I'd do the same: pull each block out, replace with a
placeholder, translate prose, then in the translated version put the
same block back with comments translated but identifiers left in
source language. Variable names that ARE in a natural language are
the edge case. Usually you want them stable across locales so
cross-chapter references don't drift.
Wow