VOOZH about

URL: https://thenewstack.io/rust-meets-dart-with-release-of-rust_core-1-0-0/

⇱ Rust Meets Dart With Release of rust_core 1.0.0 - The New Stack


TNS
SUBSCRIBE
Join our community of software engineering leaders and aspirational developers. Always stay in-the-know by getting the most important news and exclusive content delivered fresh to your inbox to learn more about at-scale software development.
REQUIRED
It seems that you've previously unsubscribed from our newsletter in the past. Click the button below to open the re-subscribe form in a new tab. When you're done, simply close that tab and continue with this form to complete your subscription.
The New Stack does not sell your information or share it with unaffiliated third parties. By continuing, you agree to our Terms of Use and Privacy Policy.
Welcome and thank you for joining The New Stack community!
Please answer a few simple questions to help us deliver the news and resources you are interested in.
REQUIRED
REQUIRED
REQUIRED
REQUIRED
REQUIRED
Great to meet you!
Tell us a bit about your job so we can cover the topics you find most relevant.
REQUIRED
REQUIRED
REQUIRED
REQUIRED
REQUIRED
Welcome!

We’re so glad you’re here. You can expect all the best TNS content to arrive Monday through Friday to keep you on top of the news and at the top of your game.

What’s next?

Check your inbox for a confirmation email where you can adjust your preferences and even join additional groups.

Follow TNS on your favorite social media networks.

Become a TNS follower on LinkedIn.

Check out the latest featured and trending stories while you wait for your first TNS newsletter.

PREV
1 of 2
NEXT
VOXPOP
As a JavaScript developer, what non-React tools do you use most often?
Angular
0%
Astro
0%
Svelte
0%
Vue.js
0%
Other
0%
I only use React
0%
I don't use JavaScript
0%
Thanks for your opinion! Subscribe below to get the final results, published exclusively in our TNS Update newsletter:
NEW! Try Stackie AI
From clobbered drafts to real-time sync
Apr 14th 2026 10:00am, by David Moore
TypeScript 6.0 RC arrives as a bridge to a faster future
Mar 14th 2026 9:00am, by Darryl K. Taft
Mastra empowers web devs to build AI agents in TypeScript
Jan 28th 2026 11:00am, by Loraine Lawson
2024-07-03 11:36:36
Rust Meets Dart With Release of rust_core 1.0.0
Rust / Software Development

Rust Meets Dart With Release of rust_core 1.0.0

rust_core is an implementation of Rust's core library in Dart.
Jul 3rd, 2024 11:36am by Darryl K. Taft
👁 Featued image for: Rust Meets Dart With Release of rust_core 1.0.0

rust_core version 1.0.0 has been released.

According to the r/dartlang subreddit, rust_core is an implementation of Rust‘s core library in Dart.

By making adjustments to Rust’s features to align with Dart’s principles, the goal of the implementation is to create a seamless and natural integration between the two languages. This enables developers to use advanced tools that were once exclusive to Rust developers, allowing for a smooth transition between the languages.

The project goals state that “rust_core strives to bring reliability and performance in every feature. Every feature is robustly tested. Over 500 meaningful test suites and counting.”

Moreover “For Rust developers involved in programming with Dart, or Dart developers interested in idiomatic and safe programming, we have developed ‘rust_core,’ a package designed to implement Rust’s core library in Dart,” wrote Henry McMahon in a blog post last November.

The company behind the rust_core project is called Voyver, a startup in the AI and educational software space. McMahon is the primary maintainer on the team for rust_core.

“We primarily use Dart and Rust in our stack,” he told The New Stack. “A common API was identified as a missing piece to the primarily Rust developer team and codebase. rust_core solved that for us.”

McMahon, who is a lead software engineer at Voyver, said that with just Rust and Dart the Voyver team can accomplish everything they need to.

Indeed, Rust can go anywhere, he said.

“Rust is helping us develop our server architecture while being scalable, fast, and safe. On the client side, Rust is helping us bring AI models to users. We also have a few utilities that we use on both the client and server side (Dart ffi on the client side),” McMahon said. Meanwhile, “An internal CLI tool was also developed with Rust and successfully helps us manage our environments.”

However, “With Dart we can bring user experiences to life on multiple platforms (iOS, Android, Windows, and macOS for us) in one codebase, while being able to iterate quickly,” he noted. “Flutter is key to being able to accomplish this. Dart has also replaced most of our internal scripts and has shown to be a good alternative to Python or Bash.”

Moreover, Voyver benefits greatly from the development velocity from being able to only use two specialized languages, McMahon told The New Stack.

“Dart solves some issues of development for us and Rust the others,” he said. “Leaning into Rust’s type system with rust_core brings a common API to make our team that much more efficient and takes advantage of Rust’s maintainable development philosophy and mature core library.”

Rust Core Book

To support the 1.0.0 release, the rust_core project also released the Rust Core Book.

The Rust Core Book features an FAQ, which includes as the first question: Why Use Rust Core Even If I Don’t Know Rust?

In response, the FAQ reads: “From a language perspective we believe Dart is sadly lacking in a few areas, of which this package solves:

  • Dart utilizes unchecked try/catch exceptions. Handling errors as values is preferred for maintainability, thus the Result type.
  • Dart has nullable types but you cannot do null or non-null-specific operations without a bunch of if statements. Option<T> fixes this with no runtime cost and you can easily switch back and forth to nullable types since it is just a zero cost extension type of T?.
  • Dart is missing the functionality of Rust’s ? operator, so we implemented it in Dart.
  • Dart is missing a built-in Cell type or equivalent (and OnceCell/LazyCell).
  • Dart’s List type is an array/vector union (it’s growable or non-growable). This is not viewable at the type layer, which may lead to runtime exceptions and encourages using growable Lists everywhere even when you do not need to, which is less performant. So we added Arr (array).
  • Dart has no concept of a slice type, so allocating sub-lists is the only method, which is not that efficient. So we added Slice<T>.
  • Dart’s between isolate communication is by ports (ReceivePort/SendPort), which is untyped and horrible, we standardized this with introducing channel for typed bi-directional isolate communication.
  • Dart’s iteration methods are lacking for Iterable and Iterator (there are none! just moveNext() and current), while Rust has an abundance of useful methods. So we introduced Rust’s Iterator.”

Meanwhile, Rust is being adopted more broadly in use cases where memory-safe programming is recommended.

TRENDING STORIES
Darryl K. Taft covers DevOps, software development tools and developer-related issues from his office in the Baltimore area. He has more than 25 years of experience in the business and is always looking for the next scoop. He has worked...
Read more from Darryl K. Taft
SHARE THIS STORY
TRENDING STORIES
TNS owner Insight Partners is an investor in: Slice.
SHARE THIS STORY
TRENDING STORIES
TNS DAILY NEWSLETTER Receive a free roundup of the most recent TNS articles in your inbox each day.
The New Stack does not sell your information or share it with unaffiliated third parties. By continuing, you agree to our Terms of Use and Privacy Policy.