attachment_engine 0.0.1-dev.1
attachment_engine: ^0.0.1-dev.1 copied to clipboard
Universal attachment engine for Flutter to resolve, cache, download, preview, and render documents, media, and web content using native platform APIs.
0.0.1-dev.1 #
Initial real release, after a full native rewrite and hardening pass.
- Fully-native platform channels for PDF, video, audio, webview, share,
open-externally, download, and paths — no third-party plugin
dependencies. Minimal pub deps:
plugin_platform_interface,crypto,meta,equatable. - Pure-Dart JSON-file metadata store and hand-written ZIP reader (no
Hive/
archivedependency). - Attachment resolve → cache (LRU, checksum-verified) → download → render
pipeline with in-flight request de-duplication and typed
AttachmentFailures. - HTTP range-based download resume on both platforms: Android
(
HttpURLConnection+Rangeheader +.part.metasidecar), iOS (URLSessionDownloadTaskresume-data). Falls back to a clean full restart when the server/OS doesn't support resuming. - HLS (
.m3u8) adaptive playback works on both platforms via native APIs (AVPlayeron iOS,MediaPlayeron Android). DASH (.mpd) is not supported — documented limitation of avoiding ExoPlayer/Media3. - Security: zip-slip-safe archive extraction, hashed (never raw) cache filenames, no URLs/tokens ever logged, stable cache identity independent of rotating signed URLs.
- Widgets:
AttachmentTile,AttachmentErrorView,AttachmentList,AttachmentViewer. - CI: GitHub Actions running format/analyze/test/Android build on
ubuntu-latestand an iOS build job onmacos-latest.