npm package: @ithinku/ziro
Description: 跨平台端口管理工具 - 快速查找和终止占用端口的进程
Author: huangshan
Latest version: 0.0.21

# Ziro

<div align="center">

一个快速、跨平台的端口管理工具

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Crates.io](https://img.shields.io/crates/v/ziro.svg)](https://crates.io/crates/ziro)
[![npm](https://img.shields.io/npm/v/@ithinku/ziro.svg)](https://www.npmjs.com/package/@ithinku/ziro)

[English](README.en.md) | [简体中文](README.zh.md)

</div>

## 简介

Ziro 是一个强大的命令行工具，用于快速查找和管理占用端口的进程。支持 Windows、Linux 和 macOS 平台。

### 核心特性

- 🔍 **快速查找** - 即时查找占用指定端口的进程
- 🎯 **批量终止** - 支持同时终止多个端口的进程
- 📊 **详细信息** - 显示进程 PID、名称、命令、CPU 和内存使用情况
- 🎨 **美观界面** - 彩色输出和表格展示，提供更好的视觉体验
- 💬 **交互式选择** - 终止进程前可交互式选择和确认
- 🌍 **跨平台** - 支持 Windows、Linux 和 macOS

## 安装

### 使用 Cargo（Rust 用户）

```bash
cargo install ziro
```

### 使用 npm（Node.js 用户）

```bash
npm install -g @ithinku/ziro
```

或使用其他包管理器：

```bash
# 使用 yarn
yarn global add @ithinku/ziro

# 使用 pnpm
pnpm add -g @ithinku/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>