flutter_quic 0.1.0-beta.1
flutter_quic: ^0.1.0-beta.1 copied to clipboard
Next-generation networking for Flutter with QUIC protocol. Faster connections, better mobile performance, and HTTP/3 support built on the battle-tested Quinn library.
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.1.0-beta.1 - 2025-07-15 #
Added #
π Core QUIC Support
- Client endpoints: Create QUIC client connections with
createClientEndpoint()
- Server endpoints: Create QUIC server connections with
createServerEndpoint()
- TLS configuration: Full support for TLS 1.3 with
serverConfigWithSingleCert()
- Stream operations: Bidirectional and unidirectional streams for data transfer
- Connection management: Connection stats, RTT monitoring, and remote address info
- Datagram support: Unreliable message delivery for real-time applications
π― Convenience API
- HTTP-style interface: Familiar GET/POST methods with QUIC performance
- Connection pooling: Automatic connection reuse and management
- Retry logic: Built-in exponential backoff for failed requests
- Timeout protection: Configurable timeouts for all operations
- Configuration management: Fine-grained control over connection parameters
π§ Developer Experience
- Async/await support: Full Flutter integration with Future-based APIs
- Memory safety: Rust ownership prevents memory leaks and corruption
- Type safety: Generated bindings with compile-time guarantees
- Error handling: Specific error types for different failure scenarios
- Cross-platform: Support for Android, iOS, Windows, macOS, and Linux
π Production Features
- Certificate loading: Support for PEM/DER certificates and private keys
- Connection migration: Seamless WiFi β cellular network switching
- 0-RTT connections: Instant reconnection for repeat connections
- Stream multiplexing: Multiple independent streams over single connection
- Flow control: Built-in congestion control and bandwidth management
Technical Details #
API Coverage
- β Core API: Complete 1:1 Quinn library mapping
- β Convenience API: HTTP-style wrapper for common use cases
- β Client operations: Full client-side QUIC functionality
- β Server operations: Complete server-side QUIC implementation
- β Certificate management: TLS certificate loading and validation
Performance Features
- Head-of-line blocking elimination: Independent stream processing
- Reduced connection overhead: Single connection replaces multiple TCP connections
- Built-in security: TLS 1.3 integration without additional handshake overhead
- Network adaptation: Dynamic adjustment to changing network conditions
Platform Support
- Android: API level 21+ with full feature support
- iOS: iOS 11+ with complete functionality
- Desktop: Windows 10+, macOS 10.14+, Linux (modern distributions)
- Mobile-optimized: Battery-aware optimizations for mobile platforms
Known Limitations #
- Web platform: Not supported (WebTransport may be added in future)
- HTTP/3 semantics: Raw QUIC transport only (HTTP/3 helpers planned)
- Advanced TLS: Custom certificate validation not yet implemented
Dependencies #
quinn = "0.11"
- Core QUIC implementationflutter_rust_bridge = "2.11.1"
- Rust-Flutter integrationtokio
- Async runtime for Rust operationsrustls
- TLS 1.3 implementation
Breaking Changes #
- None (initial release)
Note: This is a beta release intended for testing and development. While the API is stable and feature-complete, it is not recommended for production use until the stable 1.0.0 release.
Ready to test QUIC? Check out the examples in the example/
directory and let us know your feedback!