[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-1452":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":13,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":14,"stars7d":14,"stars30d":15,"stars90d":14,"forks30d":14,"starsTrendScore":14,"compositeScore":16,"rankGlobal":9,"rankLanguage":9,"license":17,"archived":18,"fork":18,"defaultBranch":19,"hasWiki":20,"hasPages":18,"topics":21,"createdAt":9,"pushedAt":9,"updatedAt":22,"readmeContent":23,"aiSummary":24,"trendingCount":14,"starSnapshotCount":14,"syncStatus":25,"lastSyncTime":26,"discoverSource":27},1452,"Portpal","wisher567\u002FPortpal","wisher567","See exactly what’s using your ports — and kill it in one click.",null,"TypeScript",225,16,4,0,5,44.19,"MIT License",false,"main",true,[],"2026-06-12 04:00:09","\u003Cdiv align=\"center\">\n\n![PortPal — Developer Port Manager](https:\u002F\u002Fraw.githubusercontent.com\u002Fwisher567\u002FPortpal\u002Fmain\u002Fassets\u002Fhero.png)\n\n# ⚡ PortPal\n\n**Know what's running. Kill what's blocking. See how it's connected.**\n\nA blazing-fast, native desktop dashboard built for modern developers. Stop playing detective with `netstat` and `lsof`. PortPal watches your ports, tracks traffic, and visualizes network topology — so you can just write code.\n\n[![Windows](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FWindows-0078D6?style=for-the-badge&logo=windows&logoColor=white)](https:\u002F\u002Fgithub.com\u002Fwisher567\u002FPortpal\u002Freleases)\n[![macOS](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FmacOS-000000?style=for-the-badge&logo=apple&logoColor=white)](https:\u002F\u002Fgithub.com\u002Fwisher567\u002FPortpal\u002Freleases)\n[![Linux](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLinux-FCC624?style=for-the-badge&logo=linux&logoColor=black)](https:\u002F\u002Fgithub.com\u002Fwisher567\u002FPortpal\u002Freleases)\n[![Built with Tauri](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FBuilt_with-Tauri_2-FFC131?style=for-the-badge&logo=tauri&logoColor=white)](https:\u002F\u002Ftauri.app)\n[![Stars](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fwisher567\u002FPortpal?style=social)](https:\u002F\u002Fgithub.com\u002Fwisher567\u002FPortpal)\n\n![PortPal App Interaction Demo](https:\u002F\u002Fraw.githubusercontent.com\u002Fwisher567\u002FPortpal\u002Fmain\u002Fassets\u002Fgif.gif)\n\n\u003C\u002Fdiv>\n\n---\n\n## 🤔 The Problem\n\nEvery developer knows the pain:\n\n```text\nError: listen EADDRINUSE: address already in use :::3000\n```\n\nYou open a project and *something* is already squatting on the port. Now you're hunting for PIDs and copy-pasting kill commands. Every. Single. Time.\n\n**PortPal ends that.**\n\n---\n\n## ✨ What's New in v0.2? (The Dashboard Era)\n\nWe've evolved from a simple port list to a full **Developer Command Center**:\n\n- 📈 **Traffic Sparklines:** Watch real-time connection activity with beautiful, animated SVG mini-charts natively embedded in your metrics.\n- 📋 **Historical Event Logging:** A dedicated logs page tracks every process start, stop, and connection spike along with timestamps and framework contexts.\n- 📦 **Categorized Services:** PortPal automatically groups active ports into cleanly contained UI cards by project and framework.\n- 🗂️ **Dev vs. System Isolation:** Quickly filter ports by 'Dev Frameworks' or 'Other System Apps', complete with a *Kill All* panic button.\n- 🎨 **Windowless Chrome:** Frameless application design with integrated native UI controls for a hyper-modern feel.\n\n---\n\n## 🚀 Core Features\n\n### 🔍 Real-Time Port Dashboard\nSee every listening port on your machine at a glance — process name, PID, connections, framework detection, and project identification. \n\n### ⚡ One-Click Control\nHover over any port and click **✕** to kill it instantly. If PortPal knows the start command, hit **↻** to restart it directly in a new terminal. Dead processes show a \"stopped\" badge with a persistent restart button.\n\n### 🗺️ Interactive Port Map (D3.js Topology)\nThe crown jewel of PortPal. A D3.js-powered network topology visualization that shows precisely how your services are communicating.\n\n\u003Cdiv align=\"center\">\n![Port Map — Interactive Network Topology](https:\u002F\u002Fraw.githubusercontent.com\u002Fwisher567\u002FPortpal\u002Fmain\u002Fassets\u002Fportmap.png)\n\u003C\u002Fdiv>\n\n- **Drag & Collide** simulation for physical manipulation\n- **Scroll** to zoom in and navigate\n- **Node Caching & Real-time updates** without screen flickering\n- **Framework-colored nodes** and connection metrics\n\n### 🔔 System Tray Intelligence\nPortPal lives quietly in your system tray:\n- **Traffic light icon** immediately alerts you to conflicts and statuses\n- A background thread quietly builds a historical log of all backend activity while the window is closed\n\n### 🧠 Smart Detection Engine\nPortPal isn't just a basic `netstat` wrapper — it understands what you build:\n- **Framework Detection** — Recognizes React, Vite, Angular, Django, Node, and more via default ports.\n- **Project Context** — Crawls for `package.json`, `Cargo.toml`, or `go.mod` to name your running servers.\n\n---\n\n## 📥 Installation\n\n### Download\n\n\u003Ctable>\n\u003Ctr>\n\u003Ctd align=\"center\">\u003Cb>🪟 Windows\u003C\u002Fb>\u003C\u002Ftd>\n\u003Ctd align=\"center\">\u003Cb>🍎 macOS\u003C\u002Fb>\u003C\u002Ftd>\n\u003Ctd align=\"center\">\u003Cb>🐧 Linux\u003C\u002Fb>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd align=\"center\">\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwisher567\u002FPortpal\u002Freleases\u002Flatest\">\u003Ccode>.msi\u003C\u002Fcode> installer\u003C\u002Fa>\u003Cbr\u002F>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwisher567\u002FPortpal\u002Freleases\u002Flatest\">\u003Ccode>.exe\u003C\u002Fcode> setup\u003C\u002Fa>\n\u003C\u002Ftd>\n\u003Ctd align=\"center\">\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwisher567\u002FPortpal\u002Freleases\u002Flatest\">\u003Ccode>.dmg\u003C\u002Fcode> Apple Silicon\u003C\u002Fa>\u003Cbr\u002F>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwisher567\u002FPortpal\u002Freleases\u002Flatest\">\u003Ccode>.dmg\u003C\u002Fcode> Intel\u003C\u002Fa>\n\u003C\u002Ftd>\n\u003Ctd align=\"center\">\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwisher567\u002FPortpal\u002Freleases\u002Flatest\">\u003Ccode>.deb\u003C\u002Fcode> \u002F \u003Ccode>.AppImage\u003C\u002Fcode>\u003C\u002Fa>\n\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n### Build from Source\n\n#### Prerequisites\n\n| Tool | Version | Install |\n|------|---------|---------|\n| **Node.js** | ≥ 18 | [nodejs.org](https:\u002F\u002Fnodejs.org) |\n| **Rust** | ≥ 1.70 | [rustup.rs](https:\u002F\u002Frustup.rs) |\n| **Tauri CLI** | v2 | Included |\n\n#### Quick Start (Dev Environment)\n\n```bash\n# Clone\ngit clone https:\u002F\u002Fgithub.com\u002Fwisher567\u002FPortpal.git\ncd portpal\n\n# Install & Run\nnpm install\nnpm run tauri dev\n```\n\n> **Note:** The app will launch with Vite HMR — you can freely edit React components and observe changes instantly alongside the Rust backend watcher.\n\n---\n\n## 🎯 Supported Frameworks\n\nPortPal auto-detects these frameworks out-of-the-box:\n\n| Port | Framework | Color |\n|------|-----------|-------|\n| 3000 | React | 🔵 Cyan |\n| 4200 | Angular | 🔴 Red |\n| 5173 | Vite | 🟣 Purple |\n| 4000 | Node.js | 🟢 Green |\n| 8000 | Django | 🟢 Emerald |\n| 8080 | HTTP | 🟡 Amber |\n| 5432 | Postgres | 🔵 Steel Blue |\n| 6379 | Redis | 🔴 Crimson |\n| 3306 | MySQL | 🔵 Blue |\n| 27017 | MongoDB | 🟢 Forest |\n| 1420 | Tauri | 🟡 Gold |\n\n---\n\n## 🏗️ Architecture\n\n| Layer | Technology |\n|-------|-----------|\n| **Runtime** | [Tauri 2](https:\u002F\u002Ftauri.app) — Rust backend, native webview |\n| **Frontend** | React 19 + TypeScript + Vite 7 |\n| **Visualization** | D3.js v7 — Force-directed graph simulation |\n| **Styling** | Vanilla CSS — Custom Glassmorphism |\n| **Port Engine** | Custom native scanner via `sysinfo` + standard OS tools |\n| **Data Pipelines**| Singleton thread-safe event logger `lazy_static` |\n\n---\n\n## 🤝 Contributing\n\nContributions are heavily welcomed to make PortPal even more intelligent.\n\n1. **Fork** the repository\n2. **Create** a feature branch: `git checkout -b feat\u002Famazing-feature`\n3. **Commit** your changes: `git commit -m 'Add amazing feature'`\n4. **Push** to the branch: `git push origin feat\u002Famazing-feature`\n5. **Open** a Pull Request\n\n### Roadmap & Ideas\n- 🌐 Expanding supported framework signatures\n- 🎨 Theme customization & light mode support\n- 📦 Homebrew\u002FWinget verification\n- 🧪 Expanding unit and integration tests\n\n---\n\n## 📄 License\n\nThis project is licensed under the **MIT License** — see the [LICENSE](LICENSE) file for details.\n\n---\n\n\u003Cdiv align=\"center\">\n\n**If PortPal saved you from one more `EADDRINUSE`, give it a ⭐**\n\nMade with 🦀 Rust + ⚛️ React + 💜 by [wisher](https:\u002F\u002Fgithub.com\u002Fwisher567)\n\n\u003C\u002Fdiv>\n","PortPal 是一个专为现代开发者设计的桌面端端口管理工具，能够帮助用户快速查看并控制占用端口的进程。其核心功能包括实时端口监控、一键终止或重启进程以及基于D3.js的网络拓扑可视化，这些特性使得它在处理端口冲突时更加高效直观。该应用采用TypeScript编写，并利用Tauri框架构建跨平台原生界面，支持Windows、macOS和Linux系统。对于经常遇到端口号被占用问题的开发人员来说，PortPal提供了一个简洁而强大的解决方案，特别适合于需要频繁调试多服务或多项目环境下的使用场景。",2,"2026-06-11 02:43:50","CREATED_QUERY"]