PackageTrack
Sign in Get early access

dio

A powerful HTTP networking package, supports Interceptors, Aborting and canceling a request, Custom adapters, Transformers, etc.

5.11.0 1000K downloads/mo #8 most downloaded on pub.dev cfug/dio

What this package is like to depend on

Last release 29 days ago

25 Jul 2026

Release timing varies

gaps range from 3 weeks to 6 months

Some releases are documented

notes for 69 of 133 stable releases

2 versions withdrawn

withdrawn after publishing

8 years old

150 releases · first in 2018

4 releases in the last 12 months

see the full history below

Release timeline

150 releases · Apr 2018 to Jul 2026
2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 60 of 150
  1. 5.11.0 25 Jul 2026
    Release notes

    What's new

    • Add query and queryUri convenience methods for the HTTP QUERY method defined in RFC 10008,
      which allows a request body for safe, idempotent queries.
    • Fix FusedTransformer (the default transformer) throwing a FormatException
      on an empty response body when a custom responseDecoder is set. It now
      returns an empty result, consistent with SyncTransformer and
      BackgroundTransformer.
    • Fix concurrent requests hanging or reporting uncaught errors when an
      interceptor shares a failing Future, such as in request deduplication.
    Open source →
    Release notes
    • Add query and queryUri convenience methods for the HTTP QUERY method defined in RFC 10008, which allows a request body for safe, idempotent queries.
    • Fix FusedTransformer (the default transformer) throwing a FormatException on an empty response body when a custom responseDecoder is set. It now returns an empty result, consistent with SyncTransformer and BackgroundTransformer.
    • Fix concurrent requests hanging or reporting uncaught errors when an interceptor shares a failing Future, such as in request deduplication.
    Open source →
  2. 5.10.0 29 Jun 2026
    Release notes

    What's new

    • Fix FormData.readAsBytes excessive memory usage with large payloads by replacing the O(n²) reduce+spread approach with a pre-allocated Uint8List.
    • Fix request hanging indefinitely when async interceptor callbacks throw without calling the handler.
    • Fix HttpException: Connection closed before full header was received being reported as DioExceptionType.unknown.
    • Add transformTimeout to bound long-running response transformations, including background JSON decoding.
      On web, timeout handling is best-effort because synchronous JavaScript work cannot be preempted.
    • Fix FormData.clone() dropping boundaryName and camelCaseContentDisposition, so a retried multipart request now keeps the original options instead of silently falling back to the defaults.
    • Fix QueuedInterceptor stalling its queue forever when the active request is cancelled while its callback is still pending (never calls next/resolve/reject), which blocked every subsequent request routed through the interceptor.
    • Fix ErrorInterceptorHandler.reject(..., true) not continuing to following error interceptors in queued interceptors.
    Open source →
    Release notes
    • Fix FormData.readAsBytes excessive memory usage with large payloads by replacing the O(n²) reduce+spread approach with a pre-allocated Uint8List.
    • Fix request hanging indefinitely when async interceptor callbacks throw without calling the handler.
    • Fix HttpException: Connection closed before full header was received being reported as DioExceptionType.unknown.
    • Add transformTimeout to bound long-running response transformations, including background JSON decoding. On web, timeout handling is best-effort because synchronous JavaScript work cannot be preempted.
    • Fix FormData.clone() dropping boundaryName and camelCaseContentDisposition, so a retried multipart request now keeps the original options instead of silently falling back to the defaults.
    • Fix QueuedInterceptor stalling its queue forever when the active request is cancelled while its callback is still pending (never calls next/resolve/reject), which blocked every subsequent request routed through the interceptor.
    • Fix ErrorInterceptorHandler.reject(..., true) not continuing to following error interceptors in queued interceptors.
    Open source →
  3. 5.9.2 02 Mar 2026
    Release notes
    • Fixes kIsWeb across different Flutter SDKs.
    • Provides httpVersion in Response.extra when using IOHttpClientAdapter.
    Open source →
  4. 5.9.1 27 Jan 2026
    Release notes
    • Add requestUrl and responseUrl parameters to LogInterceptor for more precise control over URL logging.
    • Fix QueuedInterceptor hanging indefinitely when interceptor callbacks throw synchronous exceptions.
    Open source →
  5. 5.9.0 07 Aug 2025
    Release notes
    • Do not allow updating the error field after a cancel token has canceled.
    • Allow passing an initial interceptors list to the constructor of Interceptors.
    • Use package:mime to help determine the content-type of MultipartFile base on the provided filename.
    Open source →
  6. 5.8.0 29 Jan 2025 withdrawn
    Release notes
    • Update comments and strings with MultipartFile.
    • Removes redundant warnings when composing request options on Web.
    • Fixes boundary inconsistency in FormData.clone().
    • Support FileAccessMode in Dio.download and Dio.downloadUri to change download file opening mode.
    • Fix ListParam equality by using the DeepCollectionEquality.
    • Enables configuring the logging details of DioException globally and locally.
    • Enables using Dio.clone to reuse base options, client adapter, interceptors, and transformer, in a new Dio instance.
    Open source →
  7. 5.8.0+1 29 Jan 2025
    Release notes
    • Raise the version constraint of dio_web_adapter.
    Open source →
  8. 5.7.0 03 Sep 2024
    Release notes
    • Graceful handling of responses with nonzero Content-Length, Content-Type that is json, and empty payload.
      • Empty responses are now transformed to null.
    Open source →
  9. 5.6.0 13 Aug 2024
    Release notes
    • Supports the WASM environment. Users should upgrade the adapter with dart pub upgrade or flutter pub upgrade to use the WASM-supported version.
    Open source →
  10. 5.5.0 03 Jul 2024
    Release notes
    • Raise the min Dart SDK version to 2.18.0.
    • Add constructor for DioExceptionType.badCertificate.
    • Create type alias DioMediaType for http_parser's MediaType.
    • Fix the type conversion regression when using MultipartFile.fromBytes.
    • Split the Web implementation to package:dio_web_adapter.
    • Add FusedTransformer for improved performance when decoding JSON.
    • Set FusedTransformer as the default transformer.
    • Improves InterceptorState.toString().
    • If the CancelToken got canceled before making requests, throws the exception directly rather than cut actual HTTP requests afterward.
    • Catch MediaType parse exception in Transformer.isJsonMimeType.
    • Improves warning logs on the Web platform.
    • Improves memory allocating when using CancelToken.
    Open source →
  11. 5.5.0+1 04 Jul 2024
    Release notes
    • Fix WASM compile errors after moving the web implementation to dio_web_adapter.
    Open source →
  12. 5.4.3 13 Apr 2024
    Release notes
    • Remove sockets detach in IOHttpClientAdapter.
    • Allows to define FormData.boundaryName instead of the default --dio-boundary-.
    Open source →
  13. 5.4.3+1 14 Apr 2024
    Release notes
    • Fix type promotions for the UTF-8 encoder on previous Dart SDKs.
    Open source →
  14. 5.4.2 26 Mar 2024 withdrawn
    Release notes
    • Fix receiveTimeout throws exception after the request has been cancelled.
    • Catch sync/async exceptions in interceptors' handlers.
    • Throws precise StateError for handler's duplicated calls.
    Open source →
  15. 5.4.2+1 28 Mar 2024
    Release notes
    • Revert "Catch sync/async exceptions in interceptors' handlers".
    Open source →
  16. 5.4.1 18 Feb 2024
    Release notes
    • Provide fix suggestions for dart fix.
    • Fix receiveTimeout for streamed responses.
    • Fix cancellation for streamed responses and downloads when using IOHttpClientAdapter.
    • Fix receive progress for streamed responses and downloads when using IOHttpClientAdapter.
    • Support relative baseUrl on the Web platform.
    • Avoid fake uncaught exceptions during debugging with IDEs.
    Open source →
  17. 5.4.0 30 Nov 2023
    Release notes
    • Improve SyncTransformer's stream transform.
    • Allow case-sensitive header keys with the preserveHeaderCase flag through options.
    • Fix receiveTimeout for the IOHttpClientAdapter.
    • Fix receiveTimeout for the download method of DioForNative.
    • Improve the stream byte conversion.
    Open source →
  18. 5.3.4 22 Nov 2023
    Release notes
    • Raise warning for Maps other than Map<String, dynamic> when encoding request data.
    • Improve exception messages.
    • Allow ResponseDecoder and RequestEncoder to be async.
    • Ignores Duration.zero timeouts.
    Open source →
  19. 5.3.3 22 Sep 2023
    Release notes
    • Fix failing requests throw DioExceptions with .unknown instead of .connectionError on SocketException.
    • Removes the accidentally added options argument for Options.compose.
    • Fix wrong formatting of multi-value header in BrowserHttpClientAdapter.
    • Add warning in debug mode when trying to send data with a GET request in web.
    • Reduce cases in which browsers would trigger a CORS preflight request.
    • Add warnings in debug mode when using sendTimeout and onSendProgress with an empty request body.
    • Fix receiveTimeout not working correctly on web.
    • Fix ImplyContentTypeInterceptor can be removed by Interceptors.clear() by default.
    Open source →
  20. 5.3.2 03 Aug 2023
    Release notes
    • Revert removed download for DioMixin.
    • Fix for Dio.download not cleaning the file on data handling error.
    Open source →
  21. 5.3.1 31 Jul 2023
    Release notes
    • Improve package descriptions and code formats.
    • Improve comments.
    • Fix error when cloning MultipartFile from FormData with regression test.
    • Deprecate MultipartFile constructor in favor MultipartFile.fromStream.
    • Add FormData.clone.
    Open source →
  22. 5.3.0 18 Jul 2023
    Release notes
    • Remove http from dev_dependencies.
    • Add support for cloning MultipartFile from FormData.
    • Only produce null response body when ResponseType.json.
    Open source →
  23. 5.2.1 10 Jun 2023
    Release notes
    • Revert changes to handling of List<int> body data.
    Open source →
  24. 5.2.1+1 13 Jun 2023
    Release notes
    • Fix changelog on pub.dev.
    Open source →
  25. 5.2.0 06 Jun 2023
    Release notes
    • Make LogInterceptor prints in DEBUG mode (when the assertion is enabled) by default.
    • Deprecate DioError in favor of DioException.
    • Fix IOHttpClientAdapter.onHttpClientCreate Repeated calls
    • IOHttpClientAdapter.onHttpClientCreate has been deprecated and is scheduled for removal in Dio 6.0.0 - Please use the replacement IOHttpClientAdapter.createHttpClient instead.
    • Using CancelToken no longer closes and re-creates HttpClient for each request when IOHttpClientAdapter is used.
    • Fix timeout handling for browser receiveTimeout.
    • Improve performance when sending binary data (List<int>/Uint8List).
    Open source →
  26. 5.2.0+1 07 Jun 2023
    Release notes
    • Fix DioErrorType deprecation hint.
    Open source →
  27. 5.1.2 08 May 2023
    Release notes
    • Allow FormData to send a null entry value as an empty string.
    Open source →
  28. 5.1.1 30 Mar 2023
    Release notes
    • Revert changes to CancelToken.cancel() behavior, as a result the DioError provided by the CancelToken.cancelError does not contain useful information when the token was not used with a request.
    • Fix wrong ListFormat being used for comparison during encoding of FormData and application/x-www-form-urlencoded, resulting in potential wrong output encoding for ListFormat.multi and ListFormat.multiCompatible since Dio 4.0.x.
    • Respect Options.listFormat when encoding x-www-url-encoded content.
    Open source →
  29. 5.1.0 27 Mar 2023
    Release notes
    • Fix double-completion when using connectionTimeout on web platform.
    • Allow defining adapter methods through their constructors.
    • Fix FormData encoding regression for maps with dynamic keys, introduced in 5.0.3.
    • Mark several static DioMixin functions as @internal.
    • Make DioError.stackTrace non-nullable.
    • Ensure DioError.stackTrace always points to the correct call site.
    Open source →
  30. 5.0.3 17 Mar 2023
    Release notes
    • Imply List<Map> as JSON content in ImplyContentTypeInterceptor.
    • Fix FormData encoding for collections and objects.
    Open source →
  31. 5.0.2 10 Mar 2023
    Release notes
    • Improve code formats according to linter rules.
    • Remove the force conversion for the response body.
    • Fix DioErrorType.cancel in Interceptors.
    • Fix wrong encoding of collection query parameters.
    • Fix "unsupported operation" error on web platform.
    Open source →
  32. 5.0.1 24 Feb 2023
    Release notes
    • Add ImplyContentTypeInterceptor as a default interceptor.
    • Add Headers.multipartFormDataContentType for headers usage.
    • Fix variable shadowing of withCredentials in browser_adapter.dart.
    Open source →
  33. 5.0.0 13 Feb 2023
    Release notes
    • Raise the min Dart SDK version to 2.15.0 to support BackgroundTransformer.
    • Change Dio.transformer from DefaultTransformer to BackgroundTransformer.
    • Remove plain ASCII check in FormData.
    • Allow asynchronous method with savePath.
    • Allow data in all request methods.
    • A platform independent HttpClientAdapter can now be instantiated by doing dio.httpClientAdapter = HttpClientAdapter();.
    • Add ValidateCertificate to handle certificate pinning better.
    • Support Content-Disposition header case sensitivity.

    Breaking Changes

    • The default charset utf-8 in Headers content type constants has been removed.
    • BaseOptions.setRequestContentTypeWhenNoPayload has been removed.
    • Improve DioErrors. There are now more cases in which the inner original stacktrace is supplied.
    • HttpClientAdapter must now be implemented instead of extended.
    • Any classes specific to dart:io platforms can now be imported via import 'package:dio/io.dart';. Classes specific to web can be imported via import 'package:dio/browser.dart';.
    • connectTimeout, sendTimeout, and receiveTimeout are now Durations.
    Open source →
  34. 4.0.6 31 Mar 2022
    Release notes
    • fix #1452
    Open source →
  35. 4.0.5 29 Mar 2022
    Release notes
    • require Dart 2.12.1 which fixes exception handling for secure socket connections (#45214)
    • Only delete file if it exists when downloading.
    • Fix BrowserHttpClientAdapter canceled hangs
    • Correct JSON MIME Type detection
    • [Web] support send/receive progress in web platform
    • refactor timeout logic
    • use 'arraybuffer' instead of 'blob' for xhr requests in web platform
    Open source →
  36. 4.0.5-beta1 28 Nov 2021 pre-release

    Nothing published for this version

  37. 4.0.4 22 Nov 2021
    Release notes
    • Fix fetching null data in a response
    Open source →
  38. 4.0.3 14 Nov 2021
    Release notes
    • fix #1311
    Open source →
  39. 4.0.2 14 Nov 2021
    Release notes
    • Add QueuedInterceptor
    • merge #1316 #1317
    Open source →
  40. 4.0.2-beta1 31 Oct 2021 pre-release

    Nothing published for this version

  41. 4.0.1 23 Oct 2021
    Release notes
    • merge pr #1177 #1196 #1205 #1224 #1225 #1227 #1256 #1263 #1291
    • fix #1257
    Open source →
  42. 4.0.0 28 Mar 2021
    Release notes

    stable version

    Open source →
  43. 4.0.0-prev3 20 Mar 2021 pre-release
    Release notes
    • fix #1091 , #1089 , #1087
    Open source →
  44. 4.0.0-prev2 18 Mar 2021 pre-release
    Release notes
    • fix #1082 and # 1076
    Open source →
  45. 4.0.0-prev1 17 Mar 2021 pre-release
    Release notes

    Interceptors: Add handler for Interceptor APIs which can specify the subsequent interceptors processing logic more finely (whether to skip them or not).

    Open source →
  46. 4.0.0-beta7 09 Mar 2021 pre-release
    Release notes
    • fix #1074
    Open source →
  47. 4.0.0-beta6 07 Mar 2021 pre-release
    Release notes
    • fix #1070
    Open source →
  48. 4.0.0-beta5 05 Mar 2021 pre-release
    Release notes
    • support ListParam
    Open source →
  49. 4.0.0-beta4 03 Mar 2021 pre-release
    Release notes
    • fix #1060
    Open source →
  50. 4.0.0-beta3 02 Mar 2021 pre-release
    Release notes
    • rename CollectionFormat to ListFormat
    • change default value of Options.listFormat from multiCompatible to multi
    • add upload_stream_test.dart
    Open source →
  51. 4.0.0-beta2 01 Mar 2021 pre-release
    Release notes
    • support null-safety
    • add CollectionFormat configuration in Options
    • add fetch API for Dio
    • rename DioErrorType enums from uppercase to camel style
    • rename 'Options.merge' to 'Options.copyWith'
    Open source →
  52. 4.0.0-beta1 28 Feb 2021 pre-release

    Nothing published for this version

  53. 3.0.10 07 Aug 2020
    Release notes
    1. fix #877 'dio.interceptors.errorLock.lock()'
    2. fix #851
    3. fix #641
    Open source →
  54. 3.0.9 24 Feb 2020
    Release notes
    • Add test cases
    Open source →
  55. 3.0.8 29 Dec 2019
    Release notes
    • Code style improvement
    Open source →
  56. 3.0.8-dev.1 29 Dec 2019 pre-release

    Nothing published for this version

  57. 3.0.7 25 Nov 2019
    Release notes
    • Merge #574 : fix upload image header error, support both oss and other server
    Open source →
  58. 3.0.6 22 Nov 2019
    Release notes
    • revert #562, and fixed #566
    Open source →
  59. 3.0.5 19 Nov 2019
    Release notes
    • merge #557 #531
    Open source →
  60. 3.0.4 29 Oct 2019
    Release notes
    • fix #502 #515 #523
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive