Welcome back! Our developers are currently in the process of learning the Rust programming language since that's what the new version of Holochain is written in. This post will discuss what we've learned so far and provide some learning resources which we've found helpful. I'll also touch on our recent appearance on the Holochain hAppy Hour, and the latest episode of the Fractal Sovereignty community podcast.
We have gotten to the point in our development of humm that it is time to fully commit to diving into the Rust programming language, and to refactor what we have already built using Holochain's implementation in Go to the new implementation in Rust. Here is what we know about Rust, our plan for learning to code in Rust, and some resources that we have found and hope to use.
What We Know About Rust and Holochain
Holochain refactored their Alpha version to Rust and released a developers' preview in October that was nowhere near the usability threshold we would need to develop our humm application suite. The Holochain development team has really been upping their game and have been releasing loads of features every week (announced in their greatly appreciated weekly Dev Pulse format).
With the release of a Rust-based networking layer and multi-agent testing, we feel like now is the time to start moving our codebase to align with the future of Holochain. There's just one problem: we don't know how to code in Rust! Here's what we do know:
According to Holochain Lead Developer Nicolas Luck, Holochain decided to move to Rust because:
The main reason was to enable Holochain to be compiled to WebAssembly, and thus, enable Holochain light clients running in the browser (which is needed for the Holo hosting app) to use the same source code as the Holochain core.
Resources to Learn Rust for Holochain Development
We are focusing on learning Rust over the course of January with the intention of beginning a full refactor as soon as possible. These are some resources we've found to be helpful so far:
- "The Book": is the nickname given to what you could say is an official book about Rust. We've found it to be complete and very well written. We've chosen "the book" as the main path to follow to learn Rust.
- Note: This edition of the book is the same as 'The Rust Programming Language' available in print and ebook format from No Starch Press, and also available at Amazon.
- First Steps Writing Holochain hApps With Rust: A great introductory article written Holochain developer Willem Olding. This has just recently been updated to reflect changes made in Holochain Rust v0.0.3.
- Rust's Learn Site: Rust has lots of great documentation and learning resources directly on their website.
- Rust Playground: here you can play around in a prebuilt environment.
- Rust Cookbook: The Rust Cookbook is a collection of simple examples that demonstrate good practices to accomplish common programming tasks, using the crates of the Rust ecosystem.
- YouCodeThings's Youtube channel: if you're looking for a quick introduction on the Rust language, this channel has videos on learning Rust which we found succinct in introducing the language, explaining concepts and walking through exercises like creating a snake game with Rust.
- Holochain Rust Github Repository: New code is being added all the time. Dig through the code and see how it's being used by the Holochain core dev team.
Do you have any great Rust learning resources? Please let us know in the comments below.
humm Team on the Holochain Developers' hAppy Hour
We were honored to be invited to present on the hAppy Hour #2 on Wednesday. Paul, Amanda, and Will were amazing hosts and helped us get a better handle on a few issues that we've been curious about. We got to show our simple presentation prototype and our proposed Holochain architecture to the community to get feedback on how we're approaching building a collaborative publishing application on Holo.
Along with other hApp developers on the call, we had a lively and very interesting conversation about permissions, spinning up new DHTs on the fly, and testing applications.
Fractal Sovereignty Podcast Episode 01 with Pranav Sharma
The Fractal Sovereignty podcast has published their 2nd podcast with amazing guest Pranav Sharma. In this episode, Nick, Boyan, and Pranav have a fascinating conversation about KYC, the Holochain Team's recent visit to India, and the impact of Holochain in rural and developing communities like so many in India. Pranav is an insightful and deeply thoughtful person, and I really enjoyed listening to this one!
Thanks for reading and if you have any great Rust learning resources, please let us know in the comments!