tryx 1.0.0
tryx: ^1.0.0 copied to clipboard
A powerful Dart library for functional, reliable, and expressive error handling using Result types. Provides type-safe error handling without exceptions, with support for async operations, streams, an [...]
Changelog #
All notable changes to the Tryx package will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.0.0 - 2025-10-08 #
Added #
Core Features
- Result<T, E> Type System: Type-safe error handling without exceptions
Success<T, E>andFailure<T, E>sealed classesSafeResult<T>type alias forResult<T, Exception>- Comprehensive equality, hashCode, and toString implementations
Safe Execution Functions
safe(): Wraps synchronous operations in Result typessafeAsync(): Wraps asynchronous operations in Result typessafeWith(): Custom error mapping for both sync and async operations
Functional Extensions
- Result Extensions:
map(),flatMap(),mapError(),when(),fold() - Side Effect Methods:
onSuccess(),onFailure()for logging and monitoring - Value Extraction:
getOrElse(),getOrNull()for safe value access - Error Recovery:
recover(),recoverWith()for fallback handling - Future Extensions:
mapAsync(),flatMapAsync(),whenAsync()for async chaining
Stream Integration
- Stream Safe Extensions:
safeStream(),safeMap(),safeAsyncMap(),safeExpand(),safeWhere() - Stream Result Extensions:
successes(),failures(),mapSuccesses(),flatMapSuccesses() - Stream Processing:
collectResults(),partition(), error recovery for streams - Side Effects:
onSuccesses(),onFailures()for stream monitoring
Advanced Error Recovery Patterns
- Circuit Breaker: Prevents cascading failures with configurable thresholds
CircuitBreakerclass with open/closed/half-open statesCircuitBreakerConfigfor customizable behavior- Automatic recovery and manual reset capabilities
- Fallback Chains: Sequential fallback strategies with
FallbackChain<T, E> - Adaptive Recovery: Learning-based retry with
AdaptiveRecovery<T, E> - Bulkhead Pattern: Resource isolation with
Bulkhead<T, E> - Recovery Orchestrator: Combines multiple recovery patterns
Configuration System
- Global Configuration:
TryxConfigfor library-wide settings - Logging Integration: Configurable logging with custom loggers
- Performance Monitoring: Optional performance tracking and slow operation detection
- Configuration Presets: Pre-configured setups for development, production, testing, network, and database scenarios
Advanced Safe Execution
- Safe Class: Configurable safe execution with retry policies, timeouts, and logging
- Factory Constructors:
Safe.network(),Safe.database(),Safe.critical()for common scenarios - Retry Policies: Comprehensive retry system with exponential backoff, linear backoff, and custom delays
- Error Classification:
ErrorClassifierfor determining retry strategies
Utility Functions
- Result Combinators:
combineResults(),combineResults2(),combineResults3() - Error Collection:
combineResultsCollectingErrors()for validation scenarios - Type Conversions:
fromNullable(),fromBool(),toNullable() - Stream Operations:
partitionResults(),traverse(),sequence()
Migration Support
- Migration Helpers:
MigrationHelperclass for transitioning from try-catch - Migration Patterns: Common patterns for legacy code integration
- Bridge Functions: Convert between Result and exception-based code
Documentation & Examples
- Comprehensive API Documentation: Full dartdoc coverage for all public APIs
- Usage Examples: Practical examples in
example/directory - Migration Guide: Step-by-step transition from traditional error handling
- Best Practices: Recommended patterns and usage guidelines
Technical Details #
- Dart SDK: Requires Dart 3.0.0 or higher
- Dependencies: Minimal dependencies (only
metapackage) - Null Safety: Full null safety support
- Performance: Zero-cost abstractions with compile-time optimizations
- Type Safety: Leverages Dart's type system for compile-time error detection
Package Structure #
- Clean Architecture: Feature-based modular organization
- Comprehensive Testing: Full test coverage with unit, integration, and stream tests
- Production Ready: Optimized for pub.flutter-io.cn publication
- Documentation: Professional README, API docs, and examples