low_latency_sync 0.1.7
low_latency_sync: ^0.1.7 copied to clipboard
QUIC datagram and reliable stream transport for low-latency realtime multiplayer Flutter apps on Android and iOS.
Changelog #
0.1.7 #
-
Completed the iOS quiche packaging path with the generated
Quiche.xcframework, CocoaPods C wrapper, and Swift bridge for QUIC DATAGRAMs and raw reliable streams. -
Validated an iPadOS 18.7.9 client against a macOS QUIC server: handshake, one-byte DATAGRAM delivery, and clean connection closure.
-
Retried temporary local-network socket errors while the iOS permission alert is shown, so accepting the alert no longer fails the pending QUIC handshake.
-
Added the physical iPad handshake integration test and documented the macOS, simulator, and device validation workflow.
-
Fixed reliable-stream backpressure without consuming the public event subscription or losing writable notifications during a native call.
-
Serialized FIN behind successful sends, rejected writes after FIN, and interrupted pending sends, FIN and opens on endpoint closure.
-
Kept FIN and terminal events behind buffered received data, including when listeners attach late; receive streams now end on remote FIN/reset.
-
Routed connection failures to affected streams and removed per-event string keys from the Dart stream registry.
-
Recycled native stream tracking slots, reported open/flush failures, retained socket output on temporary backpressure, and limited writable notifications to blocked senders. Endpoint shutdown now sends CONNECTION_CLOSE.
-
Added Android regression coverage for 80 sequential unidirectional streams per direction, with exact byte checks at 1, 2, 8 and 64 KiB, reset propagation, graceful endpoint close and abrupt peer process termination.
-
Validated both Android scenarios on Pixel/Mi hardware; 40 package tests and 11 example tests pass. See
native/STREAM_VALIDATION.mdfor scope and limits.
0.1.6 #
- Buffered early reliable-stream data and terminal events until public stream listeners attach.
- Preserved synchronous incoming-stream announcement for back-to-back native open, data, FIN, reset, and close events.
- Propagated endpoint and native-event failures to active streams as typed terminal events.
0.1.5 #
- Added Android x86_64 support for emulators and x86_64 devices.
- Added reproducible arm64-v8a and x86_64 quiche native build automation.
- Extended native artifact and APK packaging verification to both supported Android ABIs.
0.1.4 #
- Improved pub.flutter-io.cn metadata with focused topics, repository, issue tracker, and API documentation links.
- Clarified support for QUIC datagrams and reliable streams in low-latency Flutter multiplayer applications.
- Added discoverability terms for LAN multiplayer, realtime networking, and Android/iOS peer-to-peer transport.
0.1.3 #
- Preserved the existing QUIC DATAGRAM API behind a unified endpoint event router.
- Added typed connection lifecycle events.
- Separated the portable quiche C engine from the Android JNI bridge.
- Added a generic typed native event callback ABI.
- Added experimental Android bidirectional and unidirectional QUIC Streams.
- Added bounded Dart-side stream backpressure, partial-write retries, FIN, reset and stop-sending support.
- Validated simultaneous QUIC DATAGRAM and bidirectional Stream traffic on two physical Android devices.
0.1.2 #
- Update Readme
0.1.1 #
- Declare the example certificate as a false secret
0.1.0 #
- Initial Flutter plugin package scaffold for Android and iOS.
- Public Dart API for QUIC datagram clients and servers.
- Android native path wired through MethodChannel, Kotlin, JNI, CMake, and a package-owned C ABI stub.
- iOS Swift facade and Podspec prepared for the same C ABI.
- quiche selected as the first native backend target.
- Example app with particle simulation and QUIC runtime status.