{"id":30239196,"url":"https://github.com/abhi5h3k/cellularlab","last_synced_at":"2025-08-15T03:41:26.719Z","repository":{"id":304085212,"uuid":"1005104354","full_name":"Abhi5h3k/CellularLab","owner":"Abhi5h3k","description":"📱 CellularLab – iPerf3 Client for Android","archived":false,"fork":false,"pushed_at":"2025-08-08T12:31:46.000Z","size":1022,"stargazers_count":12,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-08T14:34:02.415Z","etag":null,"topics":["best-iperf","cellular-automaton","cmakelists","cpp","gemini-api","gemini-client","iperf","iperf-android","iperf-android-app","iperf-auto-run","iperf3","iperf3-android","iperf3-client","jni","kotlin-android","kotlin-coroutines","network","network-analysis","network-monitoring","radio-frequency"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Abhi5h3k.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-19T17:13:03.000Z","updated_at":"2025-08-08T12:31:50.000Z","dependencies_parsed_at":"2025-07-11T07:00:11.141Z","dependency_job_id":null,"html_url":"https://github.com/Abhi5h3k/CellularLab","commit_stats":null,"previous_names":["abhi5h3k/cellularlab"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/Abhi5h3k/CellularLab","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Abhi5h3k%2FCellularLab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Abhi5h3k%2FCellularLab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Abhi5h3k%2FCellularLab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Abhi5h3k%2FCellularLab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Abhi5h3k","download_url":"https://codeload.github.com/Abhi5h3k/CellularLab/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Abhi5h3k%2FCellularLab/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270519281,"owners_count":24599245,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-15T02:00:12.559Z","response_time":110,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["best-iperf","cellular-automaton","cmakelists","cpp","gemini-api","gemini-client","iperf","iperf-android","iperf-android-app","iperf-auto-run","iperf3","iperf3-android","iperf3-client","jni","kotlin-android","kotlin-coroutines","network","network-analysis","network-monitoring","radio-frequency"],"created_at":"2025-08-15T03:41:23.137Z","updated_at":"2025-08-15T03:41:26.695Z","avatar_url":"https://github.com/Abhi5h3k.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📡 CellularLab – Advanced iPerf3 Client for Android\n\n[![Abhishek LinkedIn](https://img.shields.io/badge/Abhishek-LinkedIn-blue.svg?style=for-the-badge)](https://www.linkedin.com/in/abhi5h3k/)\n[![Abhishek StackOverflow](https://img.shields.io/badge/Abhishek-StackOverflow-orange.svg?style=for-the-badge)](https://stackoverflow.com/users/6870223/abhi?tab=profile)\n\n📱 Automated Mobile Network Testing Suite for RF Engineers, QA, and Devs\n\n\u003cimg src=\"https://github.com/user-attachments/assets/11b927ce-dd3e-4dcd-952b-500b35af416d\" alt=\"CellularLab\" /\u003e\n\n\nWith JNI bindings to native iPerf3, it offers low-level control, intelligent test strategies, and a polished UI — perfect for field diagnostics, automated lab tests, and performance validation on mobile.\n\n\u003e ⭐️ If you find CellularLab useful, please consider giving it a star — it helps others discover the project and supports development!\n\n---\n\n## 🖼️ UI Preview\n\n\u003cimg src=\"https://github.com/user-attachments/assets/c909b8dd-32d3-4ad9-8612-67249c3dca79\" alt=\"Options\" width=\"80%\"/\u003e\n\n\u003e _A fast, native [iPerf3](https://github.com/esnet/iperf) Android client with TCP/UDP/AI log analysis support. Built with JNI + Android Studio._\n\n## 📥 Download APK\n\nLatest signed release: [Download from GitHub Releases →](https://github.com/Abhi5h3k/CellularLab/releases)\n\n\u003e ⚠️ Works on Android 10+ (API 29+).  \n\u003e 📁 Logs are saved to your `Downloads/` folder.\n\n---\n\n## 🚀 Features \u0026 Capabilities\n\n### ✅ Protocol Support\n\n- 🧪 **TCP**\n- 📡 **UDP**\n- 📈 **UDP Incremental Ramp-Up**\n- 🔄 **Hybrid TCP+UDP**\n- 🤖 **Smart Adaptive Ramp-Up**\n\n### ✅ Test Directions\n\n\u003cimg src=\"https://github.com/user-attachments/assets/ea091615-9a5c-4240-bb69-0262166f4e86\" alt=\"Test Direction\" width=\"50%\"/\u003e\n\n- 📤 Upload\n- 📥 Download (`-R`)\n- 🔁 Bidirectional (`--bidir`)\n\n---\n\n## 🔧 Command Mode\n\nTake full control of your testing with **Command Mode** — execute custom iPerf3 commands directly:\n\n- 💻 Enter any `iperf3` command (e.g. `-c 10.0.0.1 -u -b 10M`)\n- 🎯 Perfect for advanced users needing custom bandwidth, interval, protocol\n- 📊 Full live output visible and saved like regular tests\n\n\u003cimg src=\"https://github.com/user-attachments/assets/6213e256-9d87-4c6b-97c4-a08dea238d1d\" alt=\"Command Mode\" width=\"90%\" /\u003e\n\n---\n\n## 🤖 Gemini AI Analysis \n\nLet your assistant do the heavy lifting!\n\n- ✨ Tap \"AI Analyze\" on any log from **History**\n- 📑 Generates a structured **markdown report**:\n  - Summary of the test\n  - Performance issues (packet loss, jitter, etc.)\n  - Recommendations\n  - Quality rating (Excellent/Good/Fair/Poor)\n- 🪄 Clean, formatted output with headlines, bolds, bullet points\n- ⚡ Powered by **Google Gemini Flash**  \n- 🔒 Safe — your API key is stored in `local.properties` and not committed\n\n\u003e Great for reports, debugging, and sharing with your network team.\n\n\u003cimg src=\"https://github.com/user-attachments/assets/d35b6a2b-75f8-43f2-97e3-2102e740fee2\" alt=\"Gemini AI\" width=\"50%\" /\u003e\n\n---\n\n## 🧠 Smart Test Strategies\n\n\u003cimg src=\"https://github.com/user-attachments/assets/5dbbfb7f-d833-40dd-9bd5-ac357f308844\" alt=\"Strategy\" width=\"50%\" /\u003e\n\n| 🚀 Strategy                | 📝 Description                                                                    |\n| -------------------------- | --------------------------------------------------------------------------------- |\n| 📈 **Incremental Ramp-Up** | Gradually increases UDP bandwidth to simulate real-time scaling and detect limits |\n| 🔄 **Hybrid TCP+UDP**      | Uses TCP to estimate capacity, then runs UDP at that level                        |\n| 🧠 **Smart Ramp-Up**       | Increases UDP load only if ≥90% of packets succeed in previous step               |\n\n\nThese are ideal for **automated testing environments** or **dynamic network analysis**.\n\n---\n\n## ⚙️ Additional Test Options\n\n- Set custom durations (e.g., 10s, 60s)\n- Configure parallel streams\n- Customizable reporting interval\n- Enable verbose/debug logging\n- Auto-scroll control (double-tap to toggle)\n- Wait between iterations\n\n---\n\n## 📁 Output, Logs \u0026 History\n\n\u003cimg src=\"https://github.com/user-attachments/assets/a218bded-bfd6-443c-923b-c379f083a7e7\" alt=\"Output\" width=\"70%\"/\u003e\n\n- 📉 Real-time iPerf3-style logs (1s interval)\n- 📂 Logs saved to `Downloads/` folder\n- 🧲 Double-tap log view to toggle auto-scroll\n- 📤 Share logs via Mail, WhatsApp, Drive, etc.\n- 📄 Clean formatting for easy analysis\n- 🤖 AI analysis (v2.0) now supported for detailed summaries!\n\n---\n\n## 🌐 Public iPerf3 Servers\n\nNo iPerf server? Use these community-hosted ones:\n\n- 🔗 [iperf.fr](https://iperf.fr/iperf-servers.php)\n- 🔗 [R0GGER/public-iperf3-servers](https://github.com/R0GGER/public-iperf3-servers)\n\n\u003e ⚠️ May be unstable or offline depending on maintenance.\n\n---\n\n## 📸 Demo Gallery\n\n### 1. 🚀 First-Time User Guide\n\nNew users get an in-app walkthrough of the key screens and controls.\n\n\u003cimg src=\"https://github.com/user-attachments/assets/8086b22c-31ca-43b5-9656-5882324deeb7\" alt=\"Intro Guide\" width=\"30%\" /\u003e\n\n---\n\n### 2. 🎯 Run a Test\n\nJust set up the parameters (IP, protocol, duration) and tap start.\n\n\u003cimg src=\"https://github.com/user-attachments/assets/251567e1-263b-4751-b5b2-d284336cc0c2\" alt=\"Run Test\" width=\"30%\"/\u003e\n\n---\n\n### 3. 📊 History \u0026 Log Management\n\nSee previous results with clear pass/fail indicators:\n\n- ✅ All tests passed  \n- ⚠️ Partial success  \n- ❌ Most failed  \n\nYou can:\n- Tap to open logs\n- Share or delete from the UI\n- ✨ Analyze with Gemini AI\n\n\u003cimg src=\"https://github.com/user-attachments/assets/9a7efe04-5265-4828-81a0-e15cab9e188a\" alt=\"Result History\" width=\"30%\" /\u003e\n\n---\n\n### 4. 🤖 AI Assistant\n\n✨ Tap \"AI Analyze\" on any log from **History**\n\n\u003cimg src=\"https://github.com/user-attachments/assets/39273752-8051-4b61-818d-392a5062a259\" alt=\"NEW AI\" width=\"30%\"/\u003e\n\n---\n\n## 🛠️ Development Info\n\n| Component        | Details                              |\n|------------------|--------------------------------------|\n| **IDE**          | Android Studio `Narwhal 2025.1.1` |\n| **NDK Version**  | `28.1.13356709`                      |\n| **iPerf Version**| `3.19` (Native C via JNI)            |\n| **Min SDK**      | API 29                               |\n| **Target SDK**   | API 35                               |\n| **ABI Support**  | `armeabi-v7a`, `arm64-v8a`           |\n| **Build Types**  | Debug \u0026 Signed Release               |\n\n---\n\n## 🛠️ Updating iPerf3 Version\n\nTo upgrade to a newer iPerf3 version:\n\n📖 See [`docs/updating-iperf.md`](docs/updating-iperf.md) for detailed steps.\n\n---\n\n## 📚 Articles \u0026 Guides\n\nWant to dive deeper into how this app was built or learn how to compile iPerf3 for Android?\n\n- 📖 [How I Accidentally Vibe-Coded an Android iPerf3 App with AI](https://iper3.hashnode.dev/how-i-accidentally-vibe-coded-an-android-iperf3-app-with-ai)\n- 🛠️ [Compiling iPerf3 in Android with CMake and JNI – A Practical Guide](https://iper3.hashnode.dev/compiling-iperf3-in-android-with-cmake-and-jni-a-practical-guide)\n- 📚 [User Guide](https://android-iperf3.hashnode.space/cellular-lab/v1.0?t=1754656238992)\n\nFollow me on Hashnode for more deep dives:  \n🌐 [@AbhishekIN on Hashnode](https://hashnode.com/@AbhishekIN)\n\n---\n## 📜 License\n\nThis project is open-source under a **custom MIT-style license**:\n\n- ✅ Personal and non-commercial use allowed\n- ❌ Uploading to Play Store or commercial use **requires permission**\n\nIf you build on this, please give credit with a link to the original repo:\n\n🔗 [https://github.com/Abhi5h3k/CellularLab](https://github.com/Abhi5h3k/CellularLab)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabhi5h3k%2Fcellularlab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabhi5h3k%2Fcellularlab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabhi5h3k%2Fcellularlab/lists"}