https://github.com/michelphp/tpeek
A lightweight, zero-dependency TCP transparent proxy designed for deep traffic inspection and debugging. Built with Go for high performance and low resource footprint.
https://github.com/michelphp/tpeek
Last synced: 22 days ago
JSON representation
A lightweight, zero-dependency TCP transparent proxy designed for deep traffic inspection and debugging. Built with Go for high performance and low resource footprint.
- Host: GitHub
- URL: https://github.com/michelphp/tpeek
- Owner: michelphp
- License: agpl-3.0
- Created: 2025-12-27T15:35:31.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2025-12-27T16:05:34.000Z (about 1 month ago)
- Last Synced: 2025-12-29T12:48:50.059Z (about 1 month ago)
- Language: Go
- Size: 21.5 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# TPeek 🚀
A lightweight, zero-dependency TCP transparent proxy designed for deep traffic inspection and debugging. Built with Go for high performance and low resource footprint.
## Features
* **Bidirectional Inspection**: Real-time visualization of Client and Server data streams.
* **Visual Contrast**: Distinctive color-coded frames (🔵 Client / 🟢 Server) for instant source identification.
* **Safe for Production**: Forwards untouched binary data while sanitizing terminal output (prevents terminal crashes from binary noise).
* **Hex & Plain Text**: Toggle between raw hex dumps and readable text modes.
* **Zero Dependencies**: Single binary, no runtime required (unlike Python or Node.js tools).
## Installation
### From Source
```bash
sudo wget https://github.com/michelphp/tpeek/releases/download/1.0.0/tpeek-linux -O /usr/local/bin/tpeek
sudo chmod +x /usr/local/bin/tpeek
```
## Usage
### Basic Debugging (e.g., MySQL)
```bash
tpeek -l 0.0.0.0:8000 -t 127.0.0.1:3306
```
Point your application to `localhost:8000` to inspect the traffic flowing to your database.
### Hexadecimal Mode (Binary Protocols)
```bash
tpeek -l 0.0.0.0:8000 -t 127.0.0.1:6379 -hex
```
## Command Line Flags
| Flag | Description | Default |
| --- | --- | --- |
| `-l` | Local address and port to listen on | |
| `-t` | Target service address and port | |
| `-hex` | Enables full hexadecimal dump mode | `false` |
## Why TPeek?
TPeek is designed to observe the dialogue between two applications without the complexity of a network sniffer.
* **Flow Identification**: Each data block is prefixed by its source (Client or Server). This allows you to follow the "request-response" logic directly in the console.
* **Fragmentation Awareness**: TPeek displays data block by block, exactly as received by the `Read()` syscall. This shows how the application segments its messages instead of displaying a continuous, unstructured text stream.
* **Millisecond Timestamps**: Every read operation is marked with a precise timestamp. This makes it possible to measure the processing delay between an outgoing request and the incoming response.
* **Application-Level View**: The program displays the final data as reassembled by the operating system. You see exactly what the software receives in its buffer, without the overhead of lower-level network layers.
## License
GNU Affero General Public License v3.0 (AGPL-3.0)