Early Rust development was coordinated on the Mozilla IRC network, and back then we were entertained by the Mozilla “QDB” (quotes database), which once lived at quotes.burntelectrons.org, maintained by Grey Hodge. That site no longer exists and the database is no longer available. For a number of years I quested to get a copy of it, and then I got a copy of it, and then I just sat on it for a few…
There are a bunch of methods we call in Rust all the time that do a small, common thing, with too much visual noise. Think clone and to_owned . Etcetera. For quite a few months now I’ve been using some convenience functions to make a few common Rust operations less visually cluttered, and I’m finding I like it - every time I see an unwrap I wish I had my … POWERLETTERS! Haha. It’s super simple, as…
Since December I and others have been working on a port of the Move programming language to LLVM. This work is sponsored by Solana , with the goal of running Move on Solana and its rbpf VM ; though ultimately the work should be portable to other targets supported by LLVM. This work is firmly in the prototyping phase, but I’ve learned a lot and want share what I know so far about writing LLVM…
wasm-opt is a component of the Binaryen toolkit, written in C++, that optimizes WebAssembly modules, I have recently created a wasm-opt bindings crate for Rust (with the extensive help of my partner Aimeedeer ). The wasm-opt crate allows wasm-opt to be installed via cargo , and also includes an idiomatic Rust API to access wasm-opt programmatically. This was a fun bite-sized project that involved…
Move is a new smart contract language that has been gaining momentum, with a unique set of design choices. I have been wanting to learn it since being told by a mentor that it was a language that interested them. Described in the paper Resources: A Safe Language Abstraction for Money , Move was originally developed for the defunct Libra / Diem project at Facebook, and is now used by several…
It’s been more than a year since my last look at programming on ICP . With their May 2022 hackathon it was a good opportunity to try again. My partner and I want to make a project that works well with, and takes advantage of, ICP’s architecture. Some things we think ICP should be good at: Static websites - ICP can serve large amounts of static data, like IPFS. Authentication - ICP has a unique Web…
There doesn’t seem to be a complete record of who was on individual teams in the Rust project, with past members historically being recorded simply as Rust team alumni . So I’ve read through the resources that do exist to make a list of past members of the Rust core team and document the history of its formation. The public record doesn’t make it clear when the Rust core team was formed, though…
Since trying out Rust programming on several other Rust blockchains, Aimee and I have been looking forward to test-driving Solana. And with Solana hosting a hackathon during May, it was a good opportunity to give it a try. During the hackathon we attempted to create a “sync bot”, that would sync the data from our in-development web app, Treasure Tree , to the Solana blockchain. Though it has a web…
I think the Rust language is a big success. When I think back on it I am in awe: so much had to go right to get where we are, and there were so many opportunities to go wrong. It took many tiny miracles for the Rust language to become what it has. Those miracles didn’t happen by accident though: each one was created by a real person, and real people orchestrated them to become something great.…
During my last series of bloggings about Substrate , I intended to explore ink! , Parity’s DSL library for writing smart contracts in Rust. Those posts though mostly ended up being about setting up the appropriate development environment, and my failures along the way. I remain though interested in learning Substrate, and in particular smart contract programming in Rust on Substrate. So in the…
Continuing our adventure exploring programmable Rust blockchains, this time Aimee and I are going to dive into DFINITY . I have been aware of Dfinity for a while, but have not looked at it closely. I know that they are building a programmable blockchain, and that they have their own smart contract programming language. These experience reports tend to be so detailed that they are mostly useful to…
Here’s a thing I don’t see appreciated enough about Rust: loop . I know I don’t think about it all that much, but pretty much every time I use it I feel a bit of satisfaction. loop is just an unconditional loop: it loops forever, or until you write break , or return . Most languages don’t have it. Instead, loop constructs usually have some kind of termination condition, your while and for loops.…
I am on a slow journey to learn about smart contract programming in Rust. Today I am going to finally dip into ink , a framework for writing smart contracts for blockchains built on Parity’s Substrate framework, which includes the recently-launched Polkadot network. I have previously written impressions of other blockchains, and their smart contract programming experiences: NEAR , Nervos ,…
This is part 2 of my 3 part series on getting started with Substrate and Ink . Part 1: Wandering around the Polkadot docs Part 2 (this part): Building a blockchain with Substrate Part 3: Creating a contract with Ink and running it on the Canvas network In the previous post I just explored the documentation, and never actually got around to writing any smart contract code. But I ended by coming up…
This is part 3 of my 3 part series on getting started with Substrate and Ink . Part 1: Wandering around the Polkadot docs Part 2: Building a blockchain with Substrate Part 3 (this part): Creating a contract with Ink and running it on the Canvas network In the previous post I built and ran my own Substrate-based blockchain, thinking that would be a necessary step toward writing a smart contract for…
Rust is increasingly used as a programming language for smart contracts. Whereas the first generation blockchains used specialized VMs, newer blockchains are running general purpose VMs, especially WASM . And of course, Rust is a modern language that runs just about everywhere, and is especially good at targetting WASM. Somewhat serendipitously, this has made Rust one of the best candidate…
Rust is a systems programming language with massive ambitions. It is designed for creating the most reliable software, from the tiniest embedded systems to multi-million line behemoths, and its users need to have confidence that it is fit for purpose. In service of this ambition Rust has an extremely thorough testing regimen, and that is one of the things I am most proud of about Rust. Rust has a…
Being involved in open source software is rewarding, yeah? You start off contributing to your favorite project, and it feels so heartwarming when that project’s maintainers recognize your effort. Then a few years later you somehow end up responsible for that project, and maybe some satellite projects, and people are clamoring for your attention, and your inbox is never empty, and it’s exhausting…
While I was preparing the most recent release of error-chain , it dawned on me that not everyone knows the magic of error-chain, the little Rust library that makes it easy to handle errors correctly. Error handling is front-and-center in Rust, it’s subtly complex, and it’s important for the health of a project, and the sanity of its maintainers, that error handling is done right. Right from the…