- Add GitHub Actions CI workflow for analyze and tests - Update README with project structure, build instructions, and license info - Document iperf3 binary bundling process
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
name: CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
|
||||
jobs:
|
||||
analyze:
|
||||
name: Analyze & Test
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- uses: subosito/flutter-action@v2
|
||||
with:
|
||||
flutter-version: '3.47.1'
|
||||
channel: 'stable'
|
||||
|
||||
- name: Get dependencies
|
||||
run: flutter pub get
|
||||
|
||||
- name: Analyze
|
||||
run: flutter analyze
|
||||
|
||||
- name: Run tests
|
||||
run: flutter test
|
||||
@@ -1,2 +1,66 @@
|
||||
# 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.
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
404: Not Found
|
||||
Reference in New Issue
Block a user