{"id":39512489,"url":"https://github.com/sunjary/netassistant","last_synced_at":"2026-03-15T08:33:50.201Z","repository":{"id":331896791,"uuid":"1127239688","full_name":"SunJary/NetAssistant","owner":"SunJary","description":"NetAssistant - A GUI tool for TCP/UDP network debugging. Easily create servers \u0026 clients to send/receive packets.  tcp/udp debugger packet sender network testing gui tool  图形界面、TCP/UDP调试、网络测试、数据包收发","archived":false,"fork":false,"pushed_at":"2026-01-19T15:45:02.000Z","size":624,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-19T21:54:53.384Z","etag":null,"topics":["gui","network-debugging","tcp","tools","udp"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SunJary.png","metadata":{"files":{"readme":"README-en.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-03T13:29:21.000Z","updated_at":"2026-01-19T15:37:42.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/SunJary/NetAssistant","commit_stats":null,"previous_names":["sunjary/netassistant"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/SunJary/NetAssistant","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SunJary%2FNetAssistant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SunJary%2FNetAssistant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SunJary%2FNetAssistant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SunJary%2FNetAssistant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SunJary","download_url":"https://codeload.github.com/SunJary/NetAssistant/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SunJary%2FNetAssistant/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28603402,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T12:01:53.233Z","status":"ssl_error","status_checked_at":"2026-01-20T12:01:46.545Z","response_time":117,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["gui","network-debugging","tcp","tools","udp"],"created_at":"2026-01-18T06:05:57.755Z","updated_at":"2026-03-15T08:33:50.181Z","avatar_url":"https://github.com/SunJary.png","language":"Rust","readme":"# NetAssistant\n\n\u003cdiv align=\"center\"\u003e\n\n**A high-performance, modern network debugging tool built with Rust**\n\n[![Rust](https://img.shields.io/badge/Rust-2024-orange.svg)](https://www.rust-lang.org)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nEnglish | [中文](README.md)\n\n\u003c/div\u003e\n\n---\n\n## Introduction\n\nNetAssistant is a high-performance, modern network debugging tool built with Rust. It provides an intuitive interface for testing and debugging network communications, supporting TCP/UDP client and server modes.\n\n## ✨ Features\n\n- **Multi-protocol support**: TCP/UDP client and server modes\n- **Chat-style message logging**: Intuitive display of message interactions\n- **Configuration persistence**: Automatically saves connection configurations\n- **Auto-reply functionality**: Supports test auto-replies\n- **Periodic send functionality**: Supports timed periodic message sending\n- **Multi-tab management**: Manage multiple connections simultaneously\n- **Client message viewing**: Select specific clients to view their messages\n\n## 🎯 Use Cases\n\n- ✅ **IoT device integration testing**: Test communication with various IoT devices and verify device responses and data formats\n- ✅ **Network application development debugging**: Quickly test communication logic and verify data transfer formats during network application development\n- ✅ **Embedded device communication verification**: Verify the correctness of network communication protocol implementations in embedded systems\n\n## 📸 Interface Preview\n\n### Client Mode\n![Client Screenshot](assets/screenshots/screenshot_client.png)\n\n### Server Mode\n![Server Screenshot](assets/screenshots/screenshot_server.png)\n\n## 🚀 Quick Start\n\n### Prerequisites\n\n- Rust 1.70 or higher\n- Windows 10/11 or Linux\n\n### Installation\n\n#### Recommended Method: Install via winget\n**Advantages**: Supports automatic upgrades, easier installation and management\n1. First install winget (built-in on Windows 10 1809+ or Windows 11, or refer to [Microsoft official documentation](https://learn.microsoft.com/en-us/windows/package-manager/winget/) for installation methods)\n2. Open Command Prompt or PowerShell and run:\n   ```bash\n   winget install SunJary.NetAssistant\n   ```\n3. To upgrade later, simply run:\n   ```bash\n   winget upgrade SunJary.NetAssistant\n   ```\n\n#### Alternative Method: Download from GitHub Release\nPlease visit the [GitHub Release page](https://github.com/sunjary/netassistant/releases) to download the latest version.\n\n### Running\n\nAfter downloading, extract the package and run the executable file.\n\n## 💡 Usage\n\n1. **Create Connection**\n   - Click the `[+New]` button in the left panel\n   - Select connection type (Client/Server)\n   - Select protocol (TCP/UDP)\n   - Fill in address and port\n\n2. **Connect to Server**\n   - For client connections, click the `[Connect]` button\n   - For server connections, click the `[Start]` button\n\n3. **Send Messages**\n   - Enter message content in the bottom input box\n   - Click the `[Send]` button or press Enter to send\n\n4. **Periodic Send**\n   - Enable periodic send functionality in the connection tab\n   - Set send interval (milliseconds)\n   - Click the `[Send]` button to start periodic sending\n   - Uncheck periodic send to stop the sending task\n\n5. **Auto-reply**\n   - Enable auto-reply functionality in the connection tab\n   - Set auto-reply content\n   - Auto-reply when receiving messages\n\n6. **Manage Connections**\n   - Use tabs to switch between different connections\n   - Click the `×` on the tab to close the connection\n   - Right-click on the connection to delete saved configuration\n\n7. **Client Message Viewing**\n   - In server mode, the left panel displays the list of connected clients\n   - Click a single client address to select it, and the right message list will only show messages from that client\n   - Click the selected client again to deselect and restore all messages\n   - Server replies to the client will also be included in the viewing results\n\n## 🎯 Technical Highlights\n\n### ⚡ Extreme Performance\n\n- **Rust-powered**: Built with Rust for maximum performance and security\n  - Zero-cost abstractions, compile-time optimizations\n  - Memory safety guarantees, no garbage collection\n  - Modern concurrency model\n\n- **Tokio async runtime**: Efficient async I/O operations\n  - High-performance event loop based on epoll/kqueue\n  - Non-blocking I/O, maximizes system resource utilization\n  - Lightweight task scheduling, supports millions of concurrent connections\n\n### 🎨 Modern Interface\n\n- **GPUI framework**: Cutting-edge GPU-accelerated UI\n  - GPU-based rendering, fully utilizing hardware acceleration\n  - Hardware-accelerated text rendering\n  - Smooth 60fps experience\n\n- **Smooth animations**: 60fps rendering for smooth user experience\n  - Smooth transition animations\n  - Responsive interaction feedback\n  - High-frame-rate message scrolling\n\n- **Responsive design**: Adaptive layout for different screen sizes\n  - Flexible window size adjustment\n  - Adaptive message display\n  - Optimized space utilization\n\n### 🔧 Core Features\n\n- **Real-time message monitoring**: Instant message display and auto-scroll\n  - Millisecond-level message response\n  - Auto-scroll to latest messages\n  - Message timestamps accurate to milliseconds\n\n- **Connection management**: Supports multiple simultaneous connections\n  - Multi-tab interface\n  - Independent connection state management\n  - Convenient connection switching\n\n## 🛠️ Technology Stack\n\n### Core Frameworks\n- [GPUI](https://github.com/zed-industries/zed) - GPU-accelerated UI framework\n  - High-performance GPU rendering\n  - Modern component model\n  - Responsive state management\n\n- [gpui-component](https://github.com/longbridge/gpui-component) - Modern UI component library\n  - Rich UI components\n  - Unified design language\n  - Easy to customize and extend\n\n### Network and Async\n- [Tokio](https://tokio.rs/) - Network async runtime\n  - High-performance async I/O\n  - Rich network protocol support\n  - Mature production-ready solution\n\n### Data Processing\n- [Serde](https://serde.rs/) - Data persistence serialization framework\n  - Efficient serialization/deserialization\n  - Supports multiple data formats\n  - Zero-cost abstractions\n\n- [UUID](https://docs.rs/uuid/) - Unique identifier generation\n  - Standard UUID v4 implementation\n  - Used for connection and message identification\n\n## 📊 Performance Metrics\n\n- **Startup time**: \u003c 100ms\n  - Quick startup, no waiting\n  - Instant response to user operations\n\n- **Message throughput**: 10,000+ messages/second\n  - High-concurrency message processing\n  - Low-latency message transmission\n\n- **Memory usage**: \u003c 50MB (idle state)\n  - Lightweight resource usage\n  - Efficient memory management\n\n- **UI response**: 60fps rendering\n  - Smooth user experience\n  - Lag-free interactions\n\n## 🏗️ Project Structure\n\n```\nnetassistant/\n├── src/                    # Source code directory\n│   ├── main.rs           # Application entry: initialize logging, create app instance, start main window\n│   ├── app.rs            # Main application logic: manage connections, handle network events, state management\n│   ├── config/           # Configuration management: connection config definition, storage and loading\n│   │   ├── connection.rs # Connection config and type definitions\n│   │   ├── mod.rs        # Configuration module export\n│   │   └── storage.rs    # Configuration persistence storage\n│   ├── message.rs        # Message processing: define message structure, handle message direction and type\n│   ├── ui/               # UI components: build user interface and handle user interaction\n│   │   ├── main_window.rs      # Main window component\n│   │   ├── connection_panel.rs # Connection panel: display and manage connections\n│   │   ├── connection_tab.rs   # Connection tab: each tab corresponds to one connection\n│   │   ├── tab_container.rs    # Tab container: manage multiple tabs\n│   │   ├── mod.rs              # UI module export\n│   │   └── dialog/             # Dialog components\n│   │       ├── mod.rs          # Dialog module export\n│   │       └── new_connection.rs # New connection dialog\n│   └── utils/            # Utility functions: common tools and helper functions\n│       ├── hex.rs        # Hexadecimal data processing\n│       └── mod.rs        # Utility module export\n├── assets/               # Resource files: icons and screenshots\n│   ├── icon/             # Icon files\n│   └── screenshots/      # Application screenshots\n├── .cargo/               # Cargo configuration: Rust build tool configuration\n│   └── config.toml       # Cargo configuration file\n├── .github/              # GitHub configuration: CI/CD workflows\n│   └── workflows/        # Workflow configurations\n│       └── release.yml   # Release workflow\n├── Cargo.toml            # Project configuration: dependency management and project metadata\n├── Cargo.lock            # Dependency lock file: fix dependency versions\n├── README.md             # Project documentation: Chinese description\n├── README-en.md          # English documentation: English description\n├── build.rs              # Build script: custom build logic\n└── .gitignore            # Git ignore file: specify files and directories to be ignored by Git\n```\n\n## 🔮 Future Plans\n\n- [ ] Support WebSocket protocol\n- [ ] Add message filtering and search functionality\n- [ ] Add clear history messages functionality\n\n## 🤝 Contribution\n\nWelcome to contribute code, report issues, or suggest improvements!\n\n1. Fork this repository\n2. Create a feature branch (`git checkout -b feature/AmazingFeature`)\n3. Commit changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n## 📝 License\n\nThis project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.\n\n## 📮 Contact\n\n- Project homepage: [https://github.com/sunjary/netassistant](https://github.com/sunjary/netassistant)\n- Issue feedback: [https://github.com/sunjary/netassistant/issues](https://github.com/sunjary/netassistant/issues)\n\n## 🙏 Acknowledgments\n\nThanks to the following open-source projects:\n\n- [GPUI](https://github.com/zed-industries/zed)\n- [gpui-component](https://github.com/longbridge/gpui-component)\n- [Tokio](https://tokio.rs/)\n- [Rust](https://www.rust-lang.org/)\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**If this project helps you, please give it a ⭐️**\n\nMade with ❤️ by Rust Community\n\n\u003c/div\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsunjary%2Fnetassistant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsunjary%2Fnetassistant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsunjary%2Fnetassistant/lists"}