rust_core

Pub Version Dart Package Docs License: MIT Build Status

rust_core is an implementation of Rust's Core Library in Dart.

The goal is to bring Rust's features and ergonomics to Dart. This also provides a seamless developer experience for any developer using both languages.

Rust's functionalities are carefully adapted to Dart's paradigms, focusing on a smooth idiomatic language-compatible integration with predictable control flow.

Highlights

Libraries

| Array | Cell | Iter | Mpsc | Option | Panic | Result | Slice | Sync | Typedefs |

🔥 Extensive Extensions: Dozens of additional extensions with hundreds of methods tailored for Dart. These extensions are designed for maximum composability, addressing specific scenarios.

🚀 Dart Friendly: Developed with ergonomics in mind. e.g. Dual Support for Option and Nullable Types. If a method or extension exists for Option<T>, it's also available for T?.

🧪 Robust Testing: Every feature tested. Over 500 meaningful tests. Reliability and performance in every feature.

Official Packages Based Off rust_core

Library Description
anyhow Idiomatic error handling capabilities to make your code safer, more maintainable, and errors easier to debug.
rewind A logging utility that allows you completely customize what is captured and how your logs look at each logging level.
rust_std Implementation of Rust's standard library in Dart.
tapper Extension methods on all types that allow transparent, temporary, inspection/mutation (tapping), transformation (piping), or type conversion.
thiserror A library for concisely defining error types (error enums / sealed classes) and their String representation.

Libraries

array
cell
iter
mpsc
option
panic
prelude
rust_core comes with a variety of things in its core library. However, if you had to manually import every single thing that you used, it would be very verbose. But importing a lot of things that a program never uses isn’t good either. A balance needs to be struck. The prelude is the list of things that rust_core should automatically imports into almost all projects. It’s kept as small as possible, and is focused on things, which are used in almost every single rust_core program.
result
slice
sync
typedefs