better_future
Advanced asynchronous orchestration with named results, and automatic dependency management and cleanup.
2.0.3
d-markey/better_future
What this package is like to depend on
Last release 4 months ago
23 Apr 2026
Ships on a steady schedule
a new release about every 6 weeks
Nearly every release is documented
notes for 6 of 6 stable releases
Nothing withdrawn
no release was ever pulled
7 months old
6 releases · first in 2026
6 releases in the last 12 months
see the full history below
Release timeline
6 releases · Jan 2026 to Apr 2026Releases
latest 6-
2.0.323 Apr 2026Release notes
Open source →- Handle edge case where a settler could complete with a
Future<T>instead of aT. - Sync/async routes are now handled by completion methods (except for sync errors).
- Handle edge case where a settler could complete with a
-
2.0.218 Apr 2026Release notes
Open source →- Provide extension methods on
Map<String, BetterOutcome<T>>for easier access to results and errors. - Swapped function signature detection to avoid optional argument functions being accepted as no-argument functions.
- Functions with optional named arguments will be handled as no-argument functions.
- Functions with required named arguments are not supported.
- Provide extension methods on
-
2.0.118 Feb 2026 -
2.0.024 Jan 2026Release notes
Open source →- Implemented
BetterFuture.settle: similar toBetterFuture.wait, but returns a map ofBetterOutcome<T>instead ofT. Each outcome contains either a computation result or an error. As a result,BetterFuture.settlenever fails (though it may never complete).
- Implemented
-
1.0.121 Jan 2026Release notes
Open source →- Changed
BetterResultsto anabstract interface classfor better encapsulation and testing support. - Improved API documentation for
BetterFuture.waitwith detailed usage examples; also clarified return map behavior and dependency management.
- Changed
-
1.0.021 Jan 2026Release notes
Open source →- Initial release.
- Features:
- Parallel execution of asynchronous tasks with
FutureOrsupport. - Automatic dependency management via the
$(BetterResults) object. - Elegant dynamic syntax for result access (
$.keyand$.key<T>()). - Robust built-in type casting for primitives, collections, and common core types.
- Custom type registration for cross-platform type-safe dynamic access.
- Automatic resource cleanup on orchestration failure via
cleanUpcallback. - Full compatibility with VM, Web (JavaScript), and WASM.
- Optimized for Dart 3 Map destructuring patterns.
- Parallel execution of asynchronous tasks with