Skip to content

Commit 99f670a

Browse files
committed
chore: release v0.5.0
1 parent 49c5875 commit 99f670a

File tree

3 files changed

+38
-42
lines changed

3 files changed

+38
-42
lines changed

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
[package]
22
name = "proxyfor"
3-
version = "0.4.0"
3+
version = "0.5.0"
44
edition = "2021"
55
authors = ["sigoden <[email protected]>"]
6-
description = "A proxy CLI for capturing HTTP(S) & WS(S) Traffic."
6+
description = "A powerful and flexible proxy CLI for capturing and inspecting HTTP(S) and WS(S) traffic"
77
license = "MIT OR Apache-2.0"
88
homepage = "https://github.com/sigoden/proxyfor"
99
repository = "https://github.com/sigoden/proxyfor"

README.md

Lines changed: 35 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -4,27 +4,25 @@
44
[![Crates](https://img.shields.io/crates/v/proxyfor.svg)](https://crates.io/crates/proxyfor)
55
[![Docker Pulls](https://img.shields.io/docker/pulls/sigoden/proxyfor)](https://hub.docker.com/r/sigoden/proxyfor)
66

7-
A proxy CLI for capturing HTTP(S) & WS(S) Traffic.
7+
A powerful and flexible proxy CLI for capturing and inspecting HTTP(S) and WS(S) traffic.
88

9-
## Features
9+
## Key Features
1010

11-
- Supports forward/reverse proxy
12-
- Supports HTTP/HTTPS/WS/WSS protocols
13-
- Supports filtering & searching
14-
- Provides terminal user interface (TUI)
15-
- Provides web user interface (WebUI)
16-
- Provides CA certificates installation tool
17-
- Enables export in Markdown, cURL, or HAR formats
18-
- Captures request/response in a non-blocking, streaming way
19-
20-
> Proxyfor, written in Rust, is distributed as a single executable file for Windows, macOS, and Linux, requiring no further installation steps or dependencies.
11+
* **Forward & Reverse Proxy:** Supports both forward proxy (client explicitly uses the proxy) and reverse proxy (proxy sits in front of the server).
12+
* **Multi-Protocol Support:** Handles HTTP, HTTPS, WebSocket (WS), and secure WebSocket (WSS) protocols.
13+
* **Flexible Filtering:** Filter traffic based on method, URI, and content-type for targeted analysis.
14+
* **Multiple Interfaces:** Includes a user-friendly Terminal User Interface (TUI) and a web-based interface (WebUI) for inspecting captured data.
15+
* **CA Certificate Management:** Simplifies the process of installing the necessary CA certificates to decrypt HTTPS traffic.
16+
* **Export Options:** Export captured traffic in various formats, including Markdown, cURL commands, and HAR files.
17+
* **Non-Blocking Streaming:** Captures request/response data in a non-blocking, streaming fashion for efficient handling of large volumes of traffic.
18+
* **Cross-Platform & Standalone:** Delivered as a single, self-contained executable for Windows, macOS, and Linux, simplifying setup and distribution.
2119

2220
## Screenshots
2321

24-
**Terminal User Inferace**
22+
**Terminal User Interface (TUI)**
2523
![proxyfor-tui](https://github.com/user-attachments/assets/87a93e09-4783-4273-85b6-002762909fc3)
2624

27-
**Web User Inferace**
25+
**Web User Interface (WebUI)**
2826
![proxyfor-webui](https://github.com/user-attachments/assets/4f1f921a-95ec-44e0-8a2f-671614c0b934)
2927

3028
## Installation
@@ -45,29 +43,27 @@ docker run -v ~/.proxyfor:/.proxyfor -p 8080:8080 --rm sigoden/proxyfor --web
4543

4644
Download from [Github Releases](https://github.com/sigoden/proxyfor/releases), unzip and add proxyfor to your $PATH.
4745

48-
## Proxy Type
46+
## Proxy Modes Explained
4947

5048
### Forward Proxy
5149

52-
The client sets the proxy to `http://127.0.0.1:8080`.
50+
In this mode, your client applications (e.g., web browsers, curl) are configured to send their requests to `proxyfor`, which then forwards them to the target servers. You would configure your client to use a proxy at `http://127.0.0.1:8080`.
5351

54-
```sh
55-
$ proxyfor
56-
$ curl -x http://127.0.0.1:8080 httpbin.org/ip
52+
```bash
53+
proxyfor
54+
curl -x http://127.0.0.1:8080 httpbin.org/ip
5755
```
5856

5957
### Reverse Proxy
6058

61-
The client accesses to `http://127.0.0.1:8080/*`.
62-
63-
**This mode is suitable for scenarios where client cannot set a proxy.**
59+
In reverse proxy mode, `proxyfor` sits in front of a target server. Clients access `proxyfor` and it forwards the requests to the defined URL. This mode is ideal when clients cannot be configured to use a proxy.
6460

65-
```sh
66-
$ proxyfor https://httpbin.org
67-
$ curl http://127.0.0.1:8080/ip
61+
```bash
62+
proxyfor https://httpbin.org
63+
curl http://127.0.0.1:8080/ip
6864
```
6965

70-
## Command Line
66+
## Command Line Interface (CLI)
7167

7268
```
7369
Usage: proxyfor [OPTIONS] [URL]
@@ -88,7 +84,7 @@ Options:
8884

8985
### Choosing User Interface
9086

91-
You can select different interfaces with the following commands:
87+
`proxyfor` provides several ways to interact with captured traffic:
9288

9389
```sh
9490
proxyfor # Enter TUI, equal to `proxyfor --tui`
@@ -98,40 +94,40 @@ proxyfor --dump # Dump all traffics to console
9894
proxyfor > proxyfor.md # Dump all traffics to markdown file
9995
```
10096

101-
### Changing IP and Port
97+
### Specifying Address and Port
10298

103-
You can specify different listening addresses:
99+
Customize the listening address and port:
104100

105101
```sh
106102
proxyfor -l 8081
107103
proxyfor -l 127.0.0.1
108104
proxyfor -l 127.0.0.1:8081
109105
```
110106

111-
### Applying Filter
107+
### Filtering Traffic
112108

113-
Filter traffic by setting method and URI:
109+
Apply regex filters to limit captured traffic based on method and URI:
114110

115111
```sh
116112
proxyfor -f httpbin.org/ip -f httpbin.org/anything
117-
proxyfor -f '/^(get|post) https:\/\/httpbin.org/'
113+
proxyfor -f '/^(get|post) https:\/\/httpbin.org/'
118114
```
119115

120-
Filter traffic based on content type:
116+
Filter based on MIME types:
121117

122118
```sh
123119
proxyfor -m application/json -m application/ld+json
124120
proxyfor -m text/
125121
```
126122

123+
## CA Certificate Installation
127124

128-
## CA Certificates
129-
130-
Proxyfor can decrypt encrypted traffic on the fly, as long as the client trusts proxyfor’s built-in certificate authority. Usually this means that the proxyfor CA certificate has to be installed on the client device.
125+
To decrypt HTTPS traffic, you must install `proxyfor`'s CA certificate on your device. The easiest way to do this is to use the built-in certificate installation app.
131126

132-
By far the easiest way to [install the proxyfor CA certificate](./assets/install-certificate.md) is to use the built-in certificate installation app.
133-
To do this, start proxyfor and configure your target device with the correct proxy settings.
134-
Now start a browser on the device, and visit the magic domain [proxyfor.local](http://proxyfor.local).
127+
1. Start `proxyfor` with desired proxy settings.
128+
2. On your target device, configure the device to use `proxyfor` as the proxy.
129+
3. Open a web browser on the target device and navigate to [proxyfor.local](http://proxyfor.local).
130+
4. Follow the on-screen instructions to download and install the CA certificate.
135131

136132
![proxyfor.local](https://github.com/sigoden/proxyfor/assets/4012553/a5276872-8ab1-4794-9e97-ac7038ca5e4a)
137133

0 commit comments

Comments
 (0)