3ba11330cc
CI / Analyze & Test (push) Failing after 2m25s
- Add GitHub Actions CI workflow for analyze and tests - Update README with project structure, build instructions, and license info - Document iperf3 binary bundling process
67 lines
1.6 KiB
Markdown
67 lines
1.6 KiB
Markdown
# iperf3-gui
|
|
|
|
A Flutter-based Android GUI wrapper for iperf3, the popular network performance measurement tool.
|
|
|
|
## Features
|
|
|
|
- Client-mode network throughput testing
|
|
- Simple UI: enter server address, port, and press GO
|
|
- Raw iperf3 output display
|
|
- Bundled iperf3 v3.21 binaries for arm64-v8a and armeabi-v7a
|
|
|
|
## Architecture
|
|
|
|
```
|
|
lib/
|
|
├── domain/
|
|
│ ├── models/ # TestConfiguration, Iperf3Result
|
|
│ └── services/ # Iperf3Service (Process runner)
|
|
├── ui/
|
|
│ └── features/
|
|
│ └── test_run/ # TestRunScreen, TestRunViewModel
|
|
├── main.dart # App entry point
|
|
└── pubspec.yaml # Dependencies: provider, path_provider
|
|
```
|
|
|
|
## Building
|
|
|
|
Prerequisites:
|
|
- Flutter 3.47+
|
|
- Android SDK with platform android-36
|
|
- JDK 17
|
|
|
|
```bash
|
|
flutter create . --org novoyuuparosk --project-name iperf3gui
|
|
flutter pub get
|
|
flutter analyze
|
|
flutter build apk --debug
|
|
```
|
|
|
|
### Building iperf3 binaries
|
|
|
|
To rebuild the bundled iperf3 binaries, use the NDK:
|
|
|
|
```bash
|
|
cd /tmp
|
|
wget https://github.com/esnet/iperf/archive/refs/tags/3.21.tar.gz
|
|
tar -xzf 3.21.tar.gz
|
|
cd iperf-3.21
|
|
|
|
# Configure for Android arm64-v8a
|
|
./configure --host=aarch64-linux-android \
|
|
--with-openssl=/opt/android-sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr \
|
|
--disable-sctp
|
|
|
|
# Build
|
|
make CC=aarch64-linux-android21-clang \
|
|
AR=aarch64-linux-android-ar \
|
|
AR=aarch64-linux-android-ld
|
|
|
|
# Copy to project
|
|
cp src/iperf3 /path/to/iperf3-gui/assets/iperf3/arm64-v8a/iperf3
|
|
```
|
|
|
|
## License
|
|
|
|
MIT — bundled iperf3 v3.21 is BSD-3-Clause licensed.
|