deo_emerges 0.3.0 copy "deo_emerges: ^0.3.0" to clipboard
deo_emerges: ^0.3.0 copied to clipboard

Flutter networking on top of Dio. Request deduplication, typed responses, uploads and downloads with progress, caching, retry and clear errors.

Changelog #

0.3.0 #

Adds upload and download, both with progress callbacks.

upload sends multipart form data with a configurable field name. download fetches a response as raw bytes with ResponseType.bytes, so a binary file is not corrupted by text decoding.

Both take and return bytes rather than file paths, deliberately. A path means dart:io, which does not compile on web, and this package stays on all six platforms and WebAssembly compatible.

Note that total in a progress callback is -1 until the server sends a Content-Length header. Check it before dividing for a percentage.

Still two dependencies, dio and crypto. Still 160 out of 160 on pub.dev.

0.2.0 #

Scores 160 out of 160 on pub.dev, supports all six platforms, and is WebAssembly compatible.

Dependencies reduced from eight to two, dio and crypto. Removed riverpod, provider, flutter_bloc, retry, meta and logger. logger went because it reaches for dart:io, which costs the package WebAssembly support; dart:developer does the same job in one line.

Breaking change: removed the Provider, Riverpod, and Bloc adapters (DeoProviderAdapter, DeoRiverpodAdapter, DeoBlocAdapter, DeoState) and the provider, riverpod, flutter_bloc, retry, and meta dependencies. DeoClient no longer takes a position on state management. Wire it into whatever tool you use, for example:

// Before: the adapter tracked loading/error state for you
final adapter = DeoProviderAdapter(DeoClient());

// After: call the client directly and manage state with your own tool
try {
  setState(() => isLoading = true);
  final response = await client.get('/users');
} on DeoError catch (e) {
  setState(() => error = e.message);
} finally {
  setState(() => isLoading = false);
}
  • Removed the phantom Android/iOS plugin declaration from pubspec.yaml. The package had no android/ or ios/ folder, so pub.dev was tagging it platform:android, platform:ios only. It now correctly supports web, macOS, Windows and Linux as well.
  • Removed unused dependencies: provider, retry, and meta had zero references anywhere in lib/.
  • Added automatic GET request deduplication. Two identical GET requests (same path and query parameters) made at the same time now share one network call instead of firing twice. Opt out per call with dedupe: false.
  • Added getJson and postJson to decode a response straight into a typed model, instead of reading response.data and casting it by hand. A decode failure is wrapped in a DeoError so it reads as a model problem, not a network problem.
  • Fixed homepage, repository, and issue_tracker to point at the current GitHub account. Dropped the documentation link since the wiki it pointed to does not exist.
  • Fixed CI: the workflow now uses the Flutter SDK and runs dart run build_runner build before testing, so it can actually pass.

0.1.3 #

  • Updated package description for better clarity
  • Improved documentation and examples
  • Fixed package metadata for pub.dev compliance
  • Prepared for official pub.dev release

0.1.2 #

  • Updated dependency versions to latest compatible releases
  • Improved compatibility with Flutter 3.18
  • Enhanced documentation and examples

0.1.1 #

  • Updated package dependencies
  • Fixed Git repository integration
  • Improved package documentation

0.1.0 Developed by Tisankan #

  • Initial release with the following features:
    • Concurrent Request Handling
    • Comprehensive Error Handling with retry mechanisms
    • Request Cancellation
    • Interceptors (logging, caching, authentication)
    • Customizable Timeout Settings
    • Secure Communication with SSL pinning
    • State Management Integration (Provider, Riverpod, Bloc)
    • Performance Optimization
  • Added support for all HTTP methods (GET, POST, PUT, DELETE, PATCH, HEAD)
  • Implemented adapters for popular state management solutions
  • Added comprehensive test suite
  • Created example application demonstrating key features
1
likes
160
points
135
downloads

Documentation

API reference

Publisher

verified publishertisankan.dev

Weekly Downloads

Flutter networking on top of Dio. Request deduplication, typed responses, uploads and downloads with progress, caching, retry and clear errors.

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

crypto, dio, flutter

More

Packages that depend on deo_emerges