Rust tooling has made its first appearance in the Neo ecosystem following recent contributions by community developer Jinghui Liao. In a blog post, Liao cited frustrations with C++ and a desire to learn the more modern Rust language as his primary motivations in building the new SDK for Neo.
A PhD candidate in Computer Science at Wayne State University, Liao first began working in the Neo ecosystem in 2018. He contributed to NewEconoLabs, the most prominent China-based developer community at the time. Alongside blockchain, he had also been researching trusted execution environments. This led to plans to develop a Neo SDK that could function within secure enclaves.
Liao initially attempted this task in C++ during the 2020 quarantine period, beginning with a VM then an SDK port in accordance with the Neo core implementation. He eventually lost the passion to continue the long and difficult project, but discovered a new motivation to learn Rust.
The Rust language
Rust is one of the most modern programming languages, introduced in 2014 with the priorities of memory-safety and high performance. A fan favorite among developers, Rust has become prominent in the blockchain industry—these projects are especially conscious of performance, safety, and concurrency.
Despite its efficiency and constantly growing featureset, Rust has a steep learning curve. Liao notes encountering this himself, having attempted to learn Rust a number of times in the past, and hopes the SDK will help push him forward:
Rust is so important. So I decided that I should find a project to do it, instead of using the method of first learning and then using, but directly using the needs of the project to force myself to learn. And Rust’s neo-sdk is naturally the first choice.
The Rust SDK, neo-rs, provides basic wallet functionality for the legacy version of Neo and introduces the first pieces of support for Intel SGX enclaves. Moving forward, Liao plans to add support for the NEP-6 standard, transactions, network interaction, and more.
To get things up and running (and due to the natural characteristics of Rust), the library already has a number of dependencies, specifically third-party cryptographic libraries. Liao eventually intends to strip these out and create replacements so that the SDK code does not depend on code obtained from a package manager.
The full blog post can be read at the following link: