vexio 1.0.0
vexio: ^1.0.0 copied to clipboard
Vexio — The Ultimate Flutter HTTP Client. Zero dependencies, simple as http, powerful as Dio + Copper combined. Auto token refresh, caching, retry, WebSocket, GraphQL, offline queue, multipart, interc [...]
Changelog #
1.0.0 #
- Initial release of Vexio — The Ultimate Flutter HTTP Client.
- Zero external dependencies — pure
dart:io+ Flutter SDK only. Vexio.init()— single-line initialization with full configuration.- GET, POST, PUT, PATCH, DELETE, HEAD requests.
- Multipart file upload with progress tracking (single + multiple files + bytes).
- File download with real-time progress callback.
- Auto token injection — reads from memory-first storage, zero latency.
- Auto token refresh on 401 with request retry, single-refresh guard.
- Two-layer caching — memory (instant) + disk (persistent), per-request override.
- Request deduplication — identical concurrent GETs share one network call.
- Exponential backoff retry with configurable status codes.
- Offline request queue — queues mutations, auto-replays on reconnect.
- WebSocket client with auto-reconnect, ping/pong, typed message streams.
- Built-in GraphQL support — queries, mutations, variables, error handling.
- Interceptor chain — request/response/error hooks, fully composable.
- Typed exception hierarchy —
VexioNoInternetException,VexioTimeoutException, etc. - Rich
VexioResponse<T>— parsed model, message, statusCode, errors, timing, headers. - Fluent extensions —
.handle(),.mapData(),.onSuccess(),.onFailure(),.log(). - Cancel tokens — cancel any in-flight request.
- Batch requests — parallel execution with
Future.wait. - Runtime reconfiguration — switch base URL, timeout, headers without restart.
- Pure Dart local storage — no
shared_preferences, no native setup. - Colored ANSI debug logger — auto-disabled in release builds.
- Smart JSON parser — handles enveloped + raw responses automatically.
- Configurable JSON envelope keys (
successKey,dataKey,messageKey). - Global middleware hooks —
onError,onRequestSent,onResponseReceived. - Global loading state —
onLoadingChangedcallback. - MIME type auto-detection for file uploads.
VexioFile.fromBytes()— upload from memory without a file path.