killport 2.0.0

A command-line tool to easily kill processes and containers running on a specified port.
Documentation
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [2.0.0] - 2026-03-08

### Added
- Shell completions for bash, zsh, and fish (generated at build time)
- Man page generation at build time
- `--no-fail` flag to exit successfully even when no process is found
- SIGPIPE handling for clean pipe behavior (e.g., `killport 8080 | head`)
- PID deduplication on Linux and macOS (prevents duplicate kill attempts)
- IPv6 and UDP test coverage on macOS
- CHANGELOG.md

### Changed
- **Breaking**: Exit code 2 when no matching process or container is found (was 0). Use `--no-fail` to restore previous behavior
- Updated Cargo.toml keywords for better discoverability
- Renamed Docker-specific types to generic container types (works with OrbStack, Podman, etc.)
- Container runtime detection: skip native processes when containers own the port (fixes OrbStack crash)

### Fixed
- Duplicate process entries when a process listens on both IPv4 and IPv6
- Killing container runtime's port forwarder process (e.g., OrbStack Helper) instead of the container

## [1.1.0] - 2024-11-20

### Added
- Docker container support: kill containers by port
- `--mode` flag: `auto`, `process`, `container`
- `--dry-run` flag for safe inspection
- Docker daemon protection (filters docker-proxy, dockerd processes)
- Verbosity control with `-v`/`-q` flags
- Integration tests with mock process compilation

### Changed
- Default signal changed to SIGKILL (was SIGTERM)

## [1.0.0] - 2024-06-15

### Added
- Windows support via `windows-sys` crate
- Windows process enumeration using `GetExtendedTcpTable`/`GetExtendedUdpTable`
- Cross-platform signal abstraction (`KillportSignal`)
- macOS CI testing

### Changed
- Restructured codebase with platform-specific modules

## [0.9.2] - 2023-11-10

### Fixed
- Security: bumped rustix dependency

### Changed
- Updated snapcraft configuration

## [0.9.1] - 2023-10-15

### Changed
- Updated all dependencies
- Windows memory management improvements (proper buffer reallocation)
- Replaced repetitive `get_processes` code with macro

## [0.9.0] - 2023-09-20

### Added
- Windows support (initial)
- Parent process traversal on Windows
- Windows release builds in CI

## [0.8.0] - 2023-07-10

### Fixed
- IPv6 error handling for TCP/UDP entries (avoid unwrap panics)

## [0.7.0] - 2023-05-15

### Added
- Signal specification support (`-s`/`--signal` flag)
- Support for SIGTERM, SIGINT, SIGHUP, and other Unix signals

## [0.6.0] - 2023-03-20

### Changed
- Improved release packaging
- Removed deb packaging

## [0.5.0] - 2023-02-15

### Added
- macOS support via `libproc` crate
- UDP port detection
- Install script for macOS users

## [0.1.0] - 2023-01-10

### Added
- Initial release
- Linux process detection via `/proc` filesystem
- TCP port killing
- Snap package support
- Basic CI/CD pipeline

[Unreleased]: https://github.com/jkfran/killport/compare/v2.0.0...HEAD
[2.0.0]: https://github.com/jkfran/killport/compare/v1.1.0...v2.0.0
[1.1.0]: https://github.com/jkfran/killport/compare/v1.0.0...v1.1.0
[1.0.0]: https://github.com/jkfran/killport/compare/v0.9.2...v1.0.0
[0.9.2]: https://github.com/jkfran/killport/compare/v0.9.1...v0.9.2
[0.9.1]: https://github.com/jkfran/killport/compare/v0.9.0...v0.9.1
[0.9.0]: https://github.com/jkfran/killport/compare/v0.8.0...v0.9.0
[0.8.0]: https://github.com/jkfran/killport/compare/v0.7.0...v0.8.0
[0.7.0]: https://github.com/jkfran/killport/compare/v0.6.0...v0.7.0
[0.6.0]: https://github.com/jkfran/killport/compare/v0.5.0...v0.6.0
[0.5.0]: https://github.com/jkfran/killport/compare/v0.1.0...v0.5.0
[0.1.0]: https://github.com/jkfran/killport/releases/tag/v0.1.0