rust_core
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