# cfug/dio

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/cfug-dio).**

12,802 stars · 1,558 forks · Dart · mit

## Links

- GitHub: https://github.com/cfug/dio
- Homepage: https://dio.pub
- awesome-repositories: https://awesome-repositories.com/repository/cfug-dio.md

## Topics

`adapter` `cancellable` `dart` `dio` `flutter` `http` `interceptor` `middleware` `network` `timeout` `transformer`

## Description

Dio is a cross-platform HTTP client for Dart designed to manage network requests and data communication across mobile and desktop applications. It provides a comprehensive framework for executing standard web operations while handling complex tasks such as request lifecycles, connection security, and global configuration.

The library distinguishes itself through an extensible architecture that allows developers to hook into the request and response pipeline. By utilizing interceptors and custom network adapters, users can modify traffic, perform authentication, and swap underlying networking implementations to meet specific platform or proxy requirements.

Beyond basic request execution, the project supports advanced traffic management and data handling. This includes automatic payload transformation between formats, reliable multipart file uploading with progress tracking, and the ability to cancel active operations to optimize resource usage. It also incorporates security features such as server certificate verification to maintain secure connections.

## Tags

### Networking & Communication

- [Cross-Platform HTTP Clients](https://awesome-repositories.com/f/networking-communication/cross-platform-http-clients.md) — Acts as a cross-platform HTTP client for managing network requests across mobile and desktop applications.
- [HTTP Request Customization](https://awesome-repositories.com/f/networking-communication/http-request-customization.md) — Executes standard HTTP operations with support for custom headers and request timeouts. ([source](https://dio.pub/documentation/dio/latest/))
- [HTTP Client Libraries](https://awesome-repositories.com/f/networking-communication/http-client-libraries.md) — Supports advanced HTTP operations including multipart file uploads, automatic data transformation, and request lifecycle management.
- [Request Interceptors](https://awesome-repositories.com/f/networking-communication/traffic-interception-tools/request-interceptors.md) — Provides a flexible pipeline for modifying network requests and responses through interceptors.
- [Cross-Platform Networking](https://awesome-repositories.com/f/networking-communication/cross-platform-networking.md) — Provides consistent network configuration and client swapping capabilities across multiple operating systems.
- [Multipart Upload Utilities](https://awesome-repositories.com/f/networking-communication/multipart-upload-utilities.md) — Manages reliable multipart file transfers with boundary generation and progress tracking.
- [Network Clients](https://awesome-repositories.com/f/networking-communication/network-clients.md) — Extends networking client functionality by injecting custom logic into the request lifecycle. ([source](https://dio.pub/documentation/dio/latest/))
- [HTTP/2 Protocol Implementations](https://awesome-repositories.com/f/networking-communication/http-2-protocol-implementations.md) — Improves data transfer efficiency by enabling modern HTTP/2 protocol features. ([source](https://dio.pub/documentation/dio/latest/))
- [Network Connectivity Configurations](https://awesome-repositories.com/f/networking-communication/network-infrastructure-routing/network-infrastructure-configuration/network-management/dns-connectivity-management/network-connectivity-configurations.md) — Configures network connectivity settings including proxy usage and platform-specific requirements. ([source](https://dio.pub/documentation/dio/latest/))

### Web Development

- [HTTP Request Managers](https://awesome-repositories.com/f/web-development/http-request-managers.md) — Manages standard HTTP operations, timeouts, and global configurations for consistent application communication.
- [HTTP Request Interceptors](https://awesome-repositories.com/f/web-development/http-request-interceptors.md) — Provides hooks for modifying, logging, or authenticating HTTP requests within the request lifecycle.
- [Networking Libraries](https://awesome-repositories.com/f/web-development/networking-libraries.md) — Provides a robust communication library for managing network requests and connection security in Dart applications.
- [Network Request Adapters](https://awesome-repositories.com/f/web-development/network-request-adapters.md) — Decouples high-level request logic from platform-specific networking implementations through pluggable adapters.
- [Request Lifecycle Managers](https://awesome-repositories.com/f/web-development/request-lifecycle-managers.md) — Orchestrates the request-response pipeline, including lifecycle management and global configuration. ([source](https://dio.pub/documentation/dio/latest/))
- [Stream Transformers](https://awesome-repositories.com/f/web-development/request-body-handling/stream-transformers.md) — Automatically parses and transforms incoming data streams into usable application formats. ([source](https://dio.pub/documentation/dio/latest/))

### System Administration & Monitoring

- [Request Interception Utilities](https://awesome-repositories.com/f/system-administration-monitoring/administrative-operations/linux-system-administration/networking/traffic-interception-modification/request-interception-utilities.md) — Hooks into the request and response pipeline to modify traffic or log activity. ([source](https://dio.pub/documentation/dio/latest/))
- [Request Timeouts](https://awesome-repositories.com/f/system-administration-monitoring/request-timeouts.md) — Aborts active network requests using tokens to optimize resource usage. ([source](https://dio.pub/documentation/dio/latest/))
- [Remote Task Cancellation](https://awesome-repositories.com/f/system-administration-monitoring/system-activity-monitoring/session-activity-monitors/workflow-cancellation-handlers/remote-task-cancellation.md) — Uses shared tokens to abort active network operations and free system resources.

### Security & Cryptography

- [Certificate Pinning](https://awesome-repositories.com/f/security-cryptography/certificate-pinning.md) — Validates server authenticity by restricting trusted certificates to prevent man-in-the-middle attacks.
- [Certificate Trust Validation](https://awesome-repositories.com/f/security-cryptography/identity-servers/certificate-trust-validation.md) — Validates server security certificates against trusted authorities to ensure secure connections. ([source](https://dio.pub/documentation/dio/latest/))

### Data & Databases

- [Payload Converters](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/data-transformation/payload-converters.md) — Automatically processes and converts incoming and outgoing data payloads into application-ready formats.
- [Payload Serialization](https://awesome-repositories.com/f/data-databases/data-transformation/payload-serialization.md) — Handles asynchronous parsing and serialization of data payloads between JSON and binary formats.
