NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #1350 most downloaded on pub.dev
Result for dart. It is an implementation based on Kotlin Result and Swift Result.
Last release 7 months ago
07 Mar 2026
Ships fairly regularly
a new release about every 4 months
Most releases are documented
notes for 13 of 15 stable releases
Nothing withdrawn
no release was ever pulled
4 years old
19 releases · first in 2022
One column per quarter.
tap operator for debugging and logging intermediate states in a chain.
tap operator for debugging and logging intermediate states in a chain.filter operator for conditional Success-to-Failure conversion.zip operator for combining two Results using Dart 3 Records.flatten operator (extension) for unwrapping nested Results.recoverWhen operator for conditional recovery by predicate.toString() override on Success and Failure for better debug output.- Fix linter problems.
What's Changed Full Changelog : 1.1.1...v2.1.0
Full Changelog: 1.1.1...v2.1.0
This version aims to reduce the Result boilerplate by making the Failure type Exception by default. This will free the Result from having to type Fail
Result boilerplate by making the Failure type Exception by default. This will free the Result from having to type Failure, making the declaration smaller.If there is a need to type Failure, use ResultDart.
typedef for Result<S> and AsyncResult<S> to simplify usage:
Result<S> is a simplified alias for ResultDart<S, Exception>.AsyncResult<S> is a simplified alias for AsyncResultDart<S, Exception>.Result class with ResultDart as the base class for all results.
ResultDart is now Exception.Result.success and Result.failure.Exception, but if there is a need to type it, use ResultDart<Success, Failure>.only Success type:
// Old
Result<int, Exception> myResult = Success(42);
// NEW
Result<int> myResult = Success(42);
with Success and Failure types:
// Old
Result<int, String> myResult = Success(42);
// NEW
ResultDart<int, String> myResult = Success(42);
Result boilerplate by making the Failure type Exception by default. This will free the Result from having to type Failure, making the declaration smaller.If there is a need to type Failure, use ResultDart.
typedef for Result<S> and AsyncResult<S> to simplify usage:
Result<S> is a simplified alias for ResultDart<S, Exception>.AsyncResult<S> is a simplified alias for AsyncResultDart<S, Exception>.Result class with ResultDart as the base class for all results.
ResultDart is now Exception.Result.success and Result.failure.Exception, but if there is a need to type it, use ResultDart<Success, Failure>.only Success type:
// Old
Result<int, Exception> myResult = Success(42);
// NEW
Result<int> myResult = Success(42);
with Success and Failure types:
// Old
Result<int, String> myResult = Success(42);
// NEW
ResultDart<int, String> myResult = Success(42);
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Feature/const constructors by @eKaramihov in #4
Full Changelog: v1.0.5...1.1.1
feat: Added onSuccess and onFailure callbacks
* feat: Dart 3.0.0 support
feat: Added FutureOr in AsyncResult.MapError
feat: Added FutureOr in AsyncResult.MapError
feat: Added FutureOr in AsyncResult.Map
feat: Added FutureOr in AsyncResult.Map
fix: AsyncResult recover
fix: AsyncResult recover
fix: separed functions.dart import
fix: separed functions.dart import
fix: recover operator return a Result instead a Result .
Result instead a Result.Result instead a Failure.Nothing published for this version
* Initial release
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →