Skip to content

Commit a16d27a

Browse files
committed
Update docs
1 parent 6875e09 commit a16d27a

File tree

1 file changed

+21
-21
lines changed

1 file changed

+21
-21
lines changed

README.md

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
# progszy
1+
# Progszy
22

33
[![BSD3](https://img.shields.io/badge/license-BSD3-blue.svg?style=flat)](LICENSE.md)
44
[![Build Status](https://github.com/jimsmart/progszy/actions/workflows/build.yml/badge.svg?branch=main)](https://github.com/jimsmart/progszy/actions/workflows/build.yml)
55
[![Go Report Card](https://goreportcard.com/badge/github.com/jimsmart/progszy)](https://goreportcard.com/report/github.com/jimsmart/progszy)
6-
[![Godoc](https://img.shields.io/badge/godoc-reference-blue.svg?style=flat)](https://godoc.org/github.com/jimsmart/progszy)
6+
[![Go Reference](https://img.shields.io/badge/-reference-277d9c?&logo=go&logoColor=fafafa&labelColor=5c5c5c)](https://pkg.go.dev/github.com/jimsmart/progszy/)
77
<!-- [![codecov](https://codecov.io/gh/jimsmart/progszy/branch/master/graph/badge.svg)](https://codecov.io/gh/jimsmart/progszy) -->
88

9-
progszy is a hard-caching HTTP(S) proxy server (with programmatic cache management), designed for use as part of a data-scraping pipeline.
9+
Progszy is a hard-caching HTTP(S) proxy server (with programmatic cache management), designed for use as part of a data-scraping pipeline.
1010

1111
- Brings stable reproducability to web data-scraping pipelines.
1212
- Improves web scraper development workflow, via fast controlled caching of HTTP responses.
@@ -18,7 +18,7 @@ It is both a standalone executable CLI program, and a Go package.
1818

1919
It is **not** suitable for use as a regular HTTP(S) caching proxy for humans surfing with web browsers.
2020

21-
progszy should work with any HTTP client, but currently has only been tested with Go's http.Client.
21+
Progszy should work with any HTTP client, but currently has only been tested with Go's http.Client.
2222

2323
## Caching
2424

@@ -32,7 +32,7 @@ We may review/change this binning/naming strategy at a later date.
3232

3333
### Caching Strategy
3434

35-
progszy *intentionally* makes **no** use of HTTP headers relating to cached content control that are normally utilised by browsers and other caching proxies.
35+
Progszy *intentionally* makes **no** use of HTTP headers relating to cached content control that are normally utilised by browsers and other caching proxies.
3636

3737
The body content and appropriate headers for all `200 Ok` responses are hard-cached — unless the body matches a given filter (see `X-Cache-Reject`, below).
3838

@@ -42,19 +42,19 @@ Cache eviction/management is manual-only at present. Later we will add a REST AP
4242

4343
## HTTP(S) Proxy
4444

45-
The CLI version of progszy operates as a standalone HTTP(S) proxy server. By default it listens on port 5595, for which the client's proxy configuration URL would be `http://127.0.0.1:5595`. It should be noted that currently progszy binds only to IP 127.0.0.1, which is not suitable for access from a remote IP (without the use of an SSH tunnel).
45+
The CLI version of Progszy operates as a standalone HTTP(S) proxy server. By default it listens on port 5595, for which the client's proxy configuration URL would be `http://127.0.0.1:5595`. It should be noted that currently Progszy binds only to IP 127.0.0.1, which is not suitable for access from a remote IP (without the use of an SSH tunnel).
4646

4747
Incoming requests can be either vanilla HTTP, or can be HTTPS (using `CONNECT` protocol).
4848

49-
When proxying HTTPS requests, the connection is intercepted by a man-in-the-middle (MITM) hijack, to allow both caching and the application of rules, and the resulting outbound stream is then re-encrypted using a private certificate, before being passed to the client. Note that clients wishing to proxy HTTPS requests using progszy will need specific configuration to prevent/ignore the resulting certificate mismatch errors caused by this process. See tests for an example of how this is done in Go.
49+
When proxying HTTPS requests, the connection is intercepted by a man-in-the-middle (MITM) hijack, to allow both caching and the application of rules, and the resulting outbound stream is then re-encrypted using a private certificate, before being passed to the client. Note that clients wishing to proxy HTTPS requests using Progszy will need specific configuration to prevent/ignore the resulting certificate mismatch errors caused by this process. See tests for an example of how this is done in Go.
5050

5151
Outgoing HTTP requests utilise automatic retries with exponential backoff. Internal HTTP clients use a shared transport with pooling, and support upstream proxy chaining. Connections are not explicitly rate-limited.
5252

53-
Currently, progszy only supports HTTP `GET`, `HEAD` and `CONNECT` methods. Note that support for the `HEAD` method is not actually particularly useful in this context, and really only exists for spec compliance.
53+
Currently, Progszy only supports HTTP `GET`, `HEAD` and `CONNECT` methods. Note that support for the `HEAD` method is not actually particularly useful in this context, and really only exists for spec compliance.
5454

5555
### HTTP Headers
5656

57-
progszy makes use of custom HTTP `X-*` headers to both control features and report status to the client.
57+
Progszy makes use of custom HTTP `X-*` headers to both control features and report status to the client.
5858

5959
#### Request Headers
6060

@@ -84,19 +84,19 @@ First, ensure you have a working Go environment. See [Go 'Getting Started' docum
8484

8585
Then fetch the code, build and install the binary:
8686

87-
```bash
87+
```text
8888
go get github.com/jimsmart/progszy/cmd/progszy
8989
```
9090

9191
By default, the resulting binary executable will be `~/go/bin/progszy` (assuming no customisation has been made to `$GOPATH` or `$GOBIN`).
9292

9393
## Usage Examples
9494

95-
Once built/installed, progszy can be invoked via the command line, as follows...
95+
Once built/installed, Progszy can be invoked via the command line, as follows...
9696

9797
Get help / usage instructions:
9898

99-
```bash
99+
```text
100100
$ ./progszy --help
101101
Usage of ./progszy:
102102
-cache string
@@ -107,24 +107,24 @@ Usage of ./progszy:
107107
Upstream HTTP(S) proxy URL (e.g. "http://10.0.0.1:8080")
108108
```
109109

110-
Run progszy with default settings:
110+
Run Progszy with default settings:
111111

112-
```bash
112+
```text
113113
$ ./progszy
114114
Cache location /<path-to-current-folder>/cache
115115
Listening on port 5595
116116
```
117117

118118
Run using custom configuration:
119119

120-
```bash
120+
```text
121121
$ ./progszy -port=8080 -cache=/foo/bar/store -proxy=http://10.10.0.1:9000
122122
Cache location /foo/bar/store
123123
Upstream proxy http://10.10.0.1:9000
124124
Listening on port 8080
125125
```
126126

127-
Press <kbd>control</kbd>+<kbd>c</kbd> to halt execution — progszy will attempt to cleanly complete any in-flight connections before exiting.
127+
Press <kbd>control</kbd>+<kbd>c</kbd> to halt execution — Progszy will attempt to cleanly complete any in-flight connections before exiting.
128128

129129
## Developer Information
130130

@@ -136,7 +136,7 @@ GoDocs [https://godoc.org/github.com/jimsmart/progszy](https://godoc.org/github.
136136

137137
Change folder to project root, and run:
138138

139-
```bash
139+
```text
140140
godoc -http=:6060 -notes="BUG|TODO"
141141
```
142142

@@ -148,7 +148,7 @@ To run the tests execute `go test` inside the project root folder.
148148

149149
For a full coverage report, try:
150150

151-
```bash
151+
```text
152152
go test -coverprofile=coverage.out && go tool cover -html=coverage.out
153153
```
154154

@@ -180,7 +180,7 @@ First, go to this repo's [Actions page](https://github.com/jimsmart/progszy/acti
180180

181181
Once the 'dummy release' action workflow completes ok, then make a version-tagged push to the repo, using a command similar to:
182182

183-
```bash
183+
```text
184184
git tag v0.0.1 && git push origin v0.0.1
185185
```
186186

@@ -196,7 +196,7 @@ On successful completion of the 'release' workflow execution, go to the repo's [
196196

197197
### Project Dependencies
198198

199-
Packages used by progszy (and their licensing):
199+
Packages used by Progszy (and their licensing):
200200

201201
- SQLite driver [https://github.com/mattn/go-sqlite3](https://github.com/mattn/go-sqlite3) (MIT license)
202202
- SQLite database [https://www.sqlite.org/](https://www.sqlite.org) (Public Domain, explicit)
@@ -213,7 +213,7 @@ Packages used by progszy (and their licensing):
213213

214214
## License
215215

216-
progszy is copyright 2020–2025 by Jim Smart and released under the [BSD 3-Clause License](LICENSE.md).
216+
Progszy is copyright 2020–2025 by Jim Smart and released under the [BSD 3-Clause License](LICENSE.md).
217217

218218
## History
219219

0 commit comments

Comments
 (0)