Baseflow / Baseflow/flutter_cache_manager
Proposal to support all platforms (including web) while emulating browser caching behavior
- Langage dominant
- Dart
- Étoiles
- 809
- Forks
- 510
- Merge moyen
- 6 min
- PR mergées (30 j)
- 1
Description
## 🏗 Enhancement Proposal
I recently was able to support all native platforms and web with an emulation of how the browser works with saving, revalidating and evicting cache.
https://github.com/rodydavis/http_get_cache
The goal is to support the same way the browser does caching:
- Cache-Control, eTag, Last-Modified headers
- max-age, stale-while-revalidate, stale-if-error, only-if-cached
- Support fetching content updates with head requests for non immutable objects and only after stale and 304 response meaning no update
- Support skipping cache with request headers: no-cache
- Support preventing storing with: no-store
- Use platform cache directory for stored files and database in documents
### Pitch
- Update core logic to use Drift instead of sqflite to support all native platforms
- Web will use the fetch_client package and work with browser caching
- New http client for wrapping network requests
- Add tests to test for expected browser behavior
### Platforms affected (mark all that apply)
- [X] :iphone: iOS
- [X] :robot: Android
- [+] MacOS
- [+] Windows
- [+] Linux
- [+] Web
- [+] Dart native
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Start by reading the linked http_get_cache project and the proposal's references to Drift, sqflite, and fetch_client. Compare the intended Cache-Control, ETag, Last-Modified, revalidation, eviction, and platform-storage behavior, then verify that the native and web platforms are covered by tests for the expected browser behavior.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- dart, flutter
- Domaine
- databases, mobile-dev, web-dev
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- À clarifier
- Accessibilité débutants
- 22/100