NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #854 most downloaded on pub.dev
Dio HTTP cache interceptor with multiple stores respecting HTTP directives (or not).
Last release 3 months ago
26 Jun 2026
Release timing varies
gaps range from 9 days to 13 months
Nearly every release is documented
notes for 44 of 48 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
56 releases · first in 2020
One column per quarter.
perf: skip store write in _updateCacheResponse when maxStale is still half-window fresh
fix: Age header refresh on 304 revalidation
- chore: Updated dependencies.
fix: Allow keyBuilder to depend on request body.
core: 1.1.1 / http_client: 1.0.2
core: 1.1.1 / http_client: 1.0.2
headers getter instead of headerValuesAsList.fixes #174
fixes #174
feat: Improve performance on cache check when using cipher.
feat: Improve performance on cache check when using cipher.
CacheOptions#maxStale usage may lead to empty response body.feat: Add http client along dio interceptor.
feat: Add http client along dio interceptor.
dio interceptor. Leaving space to do the same with http package or others.hitCacheOnErrorExcept is split with hitCacheOnNetworkFailure. Term is now positive and replaced by hitCacheOnErrorCodes.hitCacheOnNetworkFailure to allow restore previous cached response on network failure (connection, TO, ...).dio_cache_interceptor package.- fix: Allow " in header values. - chore: Some more tests added. - chore: Updated README.md.
" in header values.feat: Status 304 is now managed when set as valid status.
chore: Allow UUID package version v4.x
chore: Allow UUID package version v4.x
chore: Now requires Dio >= 5.2.0+1.
chore: Now requires Dio >= 5.2.0+1.
fix: cache headers, trigger improvements
fix: cache headers, trigger improvements
CacheResponse.expires, Cache-Control/max-age.chore: Ensure header values are join when there's comma (,) in the value (date, expires, last-modified, etag). Dio may or may not understand headers w
chore: Allow dio version 5 aside version 4.
fix: pathExists queryParams are not checked correctly (thanks to @clragon)
feat: Add Store.getFromPath method.
Store.getFromPath method.Store.deleteFromPath method.core: Remove Android example deprecations.
copyWith on CacheResponse.feat: Don't skip subsequent onResponse interceptors if any.
onResponse interceptors if any.fix: Cache control parsing on request. Dio request headers are not of type Headers.
Headers.- fix: Missing Nullable export.
Nullable export.__Breaking__ feat: CacheOptions.copyWith now requires Nullable for some parameters to allow null values.
CacheOptions.copyWith now requires Nullable for some parameters to allow null values.maxStale was set on global options, it was necessary to re-create the dedicated CacheOptions for the request to avoid postponing. You can now use the changed copyWith to do that.MemCacheStore.close now clears all entries.MemCacheStore.fix: stream response type is no more eligible to cache (wasn't working anyway). This is additional fix to content-disposition: attachment; ... since h
content-disposition: attachment; ... since headers may not be set.fix: io import in CacheResponse preventing usage with web platform.
>Warning, this version is considered compatible with previous versions about stored data.
Warning, this version is considered compatible with previous versions about stored data.
However, cache store entries have now a new field for request date persistence which is setup arbitrarily for backward compatibility (150ms before response receive time).
Depending of your usage, cache beheviour could be a bit inaccurate while entries are not updated with new strategy algorithm.
If this is critical for your app, consider to clean up your store by callingstore.clean();for example on your next app upgrade.
rfc7234.age, max-stale, min-fresh, must-revalidate headers/values are now parsed.maxStale is given to the request, interceptor will now add/update it from the current date for a previously cached response. This lets you get more control to postpone the deletion if needed.no-cache header is now correctly handled.content-disposition: attachment; ... is no more eligible to be cached.__Breaking__: File cache store is now available as external package and suitable for production.
feat: Add ObjectBox store (All credits go to cmengler).
fix: Ciphered content deserialization error when updating headers.
fix: file_cache_store visibility.
core: Moved DB & Hive cache stores to their respective packages.
fix: Cache-Control parsing. Dio does not expand multi valued headers.
feat: allowPostMethod added to CacheOptions.
allowPostMethod added to CacheOptions.feat: Cache-Control: max-age as cache trigger added.
fix: refreshForceCache policy added. Get parity with refresh/request and refreshForceCache/forceCache.
- feat: Add Hive as cache store.
Renamed cacheStoreForce to forceCache.
cacheStoreForce to forceCache.cacheStoreNo to noCache.CacheOptions.store required but still with optional value.core: Update dio to 4.0.0-prev1.
core: Update dio to 4.0.0-beta7.
cacheFirst policy with improved freshness checks.requestFirst to request.core: Update dio to 4.0.0-beta6.
fromNetwork to extra in Response.core: Update dio to 4.0.0-beta5.
CacheCipher.core: Update dio to 4.0.0-beta4.
copyWith method in CacheOptions to allow single option change.- core: Support null safety
fix: Hide FileCacheStore for web support.
__Breaking__: Moved from sqflite to Moor(:ffi) package for DbCacheStore.
core: Same version as 0.6.0. Updating dependencies.
feat: Add Cache-control header for response directives (all values are stored).
Cache-control header for response directives (all values are stored).Date header.Expires header (if date is invalid (i.e. 0), date is considered expired to 1970-01-01).CacheStore is no more required in CacheOptions to ease subsequent requests with global options.Response object has now CacheResponse.fromCache: true extra boolean if coming from cache with CacheResponse.cacheKey.Response extra are no more concatenated with RequestOptions extra (use Response.request.extra for this).stalledOnly renamed to staleOnly in CacheStore.Note:
This version should be backward compatible (data related) with 0.5.x versions (Please report any issues).
Even so, you're advised to clean stores to refresh entries with new headers.
With this version, 1.0 should be around the corner.
fix: ETag conditional requesting with If-None-Match (Thanks @live9080).
fix: file store associated fixes
Add MemCacheStore. Cache with LRU strategy on RAM.
Add decrypt/encrypt methods to CacheOptions (no encryption by default. Private directories for stores are prefered for common usage).
- Cancelled.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
- Initial version - DB cache store - File cache store - ETag - Last-Modified - Max stale - CacheOptions
Initial version
DB cache store
File cache store
ETag
Last-Modified
Max stale
CacheOptions
442
likes
160
points
233k
downloads
API reference
cow-level.ovh
Dio HTTP cache interceptor with multiple stores respecting HTTP directives (or not).
Repository (GitHub)
View/report issues
Apache-2.0 ( license )
dio , http_cache_core
Packages that depend on dio_cache_interceptor
442
likes
160
points
233k
downloads
API reference
cow-level.ovh
Dio HTTP cache interceptor with multiple stores respecting HTTP directives (or not).
Repository (GitHub)
View/report issues
Apache-2.0 ( license )
dio , http_cache_core
Packages that depend on dio_cache_interceptor
Back
Your coding agent can read these notes before it upgrades. Set up the MCP server →