# Ziro
<div align="center">
一个快速、跨平台的端口管理工具
[](https://opensource.org/licenses/MIT)
[](https://crates.io/crates/ziro)
[](https://www.npmjs.com/package/@protagonistss/ziro)
</div>
## 简介
Ziro 是一个强大的命令行工具,用于快速查找和管理占用端口的进程。支持 Windows、Linux 和 macOS 平台。
### 核心特性
- 🔍 **快速查找** - 即时查找占用指定端口的进程
- 🎯 **批量终止** - 支持同时终止多个端口的进程
- 📊 **详细信息** - 显示进程 PID、名称、命令、CPU 和内存使用情况
- 🎨 **美观界面** - 彩色输出和表格展示,提供更好的视觉体验
- 💬 **交互式选择** - 终止进程前可交互式选择和确认
- 🌍 **跨平台** - 支持 Windows、Linux 和 macOS
## 安装
### 使用 Cargo(Rust 用户)
```bash
cargo install ziro
```
### 使用 npm(Node.js 用户)
```bash
npm install -g @protagonistss/ziro
```
或使用其他包管理器:
```bash
# 使用 yarn
yarn global add @protagonistss/ziro
# 使用 pnpm
pnpm add -g @protagonistss/ziro
```
## 使用方法
### 查找占用端口的进程
```bash
# 查找占用 8080 端口的进程
ziro find 8080
```
输出示例:
```
找到占用端口的进程:
端口: 8080
PID: 12345
名称: node
命令: node server.js
CPU: 2.3%
内存: 128 MB
```
### 终止占用端口的进程
```bash
# 终止占用 8080 端口的进程
ziro kill 8080
# 终止多个端口的进程
ziro kill 8080 3000 5000
```
程序会显示找到的所有进程,让你交互式地选择要终止的进程,并在终止前进行确认。
### 列出所有端口占用情况
```bash
ziro list
```
输出示例:
```
当前端口占用情况:
╭──────┬───────┬──────────┬─────────────────────────┬───────┬────────╮
│ 端口 │ PID │ 名称 │ 命令 │ CPU │ 内存 │
├──────┼───────┼──────────┼─────────────────────────┼───────┼────────┤
│ 3000 │ 12345 │ node │ node app.js │ 1.2% │ 95 MB │
│ 8080 │ 23456 │ python │ python -m http.server │ 0.5% │ 45 MB │
│ 5432 │ 34567 │ postgres │ /usr/bin/postgres │ 3.1% │ 256 MB │
╰──────┴───────┴──────────┴─────────────────────────┴───────┴────────╯
```
## 命令参考
```
Ziro - 跨平台端口管理工具
使用方法:
ziro <COMMAND>
命令:
find <PORT> 查找占用指定端口的进程
kill <PORT>... 终止占用指定端口的进程(可指定多个)
list 列出所有端口占用情况
help 显示帮助信息
选项:
-h, --help 显示帮助信息
-V, --version 显示版本信息
```
## 平台支持
| Windows | x64 | ✅ 完全支持 |
| Linux | x64 | ✅ 完全支持 |
| Linux | arm64| ✅ 完全支持 |
| macOS | x64 | ✅ 完全支持 |
| macOS | arm64| ✅ 完全支持 |
## 技术栈
- **核心语言**: Rust
- **命令行解析**: clap
- **系统信息**: sysinfo
- **交互界面**: inquire
- **表格展示**: tabled
- **彩色输出**: colored
## 开发
### 构建项目
```bash
# 克隆仓库
git clone https://github.com/Protagonistss/ziro.git
cd ziro
# 构建
cargo build --release
# 运行
cargo run -- find 8080
```
### 运行测试
```bash
cargo test
```
### 代码格式化
```bash
cargo fmt
```
### 代码检查
```bash
cargo clippy
```
## 贡献
欢迎贡献!请随意提交 Issue 或 Pull Request。
### 贡献指南
1. Fork 本项目
2. 创建特性分支 (`git checkout -b feature/amazing-feature`)
3. 提交更改 (`git commit -m 'feat: add amazing feature'`)
4. 推送到分支 (`git push origin feature/amazing-feature`)
5. 创建 Pull Request
## 许可证
本项目基于 [MIT License](LICENSE) 开源。
## 致谢
感谢所有贡献者和使用者的支持!
## 相关项目
- [fkill](https://github.com/sindresorhus/fkill) - Node.js 版本的进程终止工具
- [lsof](https://github.com/lsof-org/lsof) - Unix 系统的文件和网络连接查看工具
## 更新日志
查看 [CHANGELOG.md](CHANGELOG.md) 了解版本历史。
---
<div align="center">
**如果这个项目对你有帮助,请给一个 ⭐️**
Made with ❤️ by [huangshan](https://github.com/Protagonistss)
</div>