connect-proxy
Version, currently 2.0.514 versions
- 2.0.5latestJul 15, 2026
- 2.0.4not indexedJul 15, 2026
- 2.0.3not indexedJul 15, 2026
- 2.0.2not indexedJul 15, 2026
- 2.0.1not indexedJul 15, 2026
- 2.0.0not indexedJul 15, 2026
- 1.4.1not indexedJul 15, 2026
- 1.4.0not indexedJul 15, 2026
- 1.3.0not indexedJul 15, 2026
- 1.2.1not indexedJul 15, 2026
- 1.2.0not indexedJul 15, 2026
- 1.1.0not indexedJul 15, 2026
- 1.0.1not indexedJul 15, 2026
- 1.0.0not indexedJul 15, 2026
github.com/spider-gazelle/connect-proxy
crystal lang connect / HTTP proxy implementation
7 stars
1 dependent
License: MIT
Installation
# Add this to your shard.yml
dependencies:
connect-proxy:
github: spider-gazelle/connect-proxy
version: ~> 2.0.5Then run:
shards installshard.yml
- Crystal
>= 0.36.1- License
- MIT
Dependencies
This version declares no dependencies.
README
# Connect Proxy
[](https://github.com/spider-gazelle/connect-proxy/actions/workflows/ci.yml)
A simple implementation of the [connect method](https://en.wikipedia.org/wiki/HTTP_tunnel#HTTP_CONNECT_method) for HTTP tunnelling.
Most commonly used in [HTTP proxy servers](https://en.wikipedia.org/wiki/Proxy_server#Web_proxy_servers).
# Usage
The most common usage of this shard is to use the crystal `::HTTP::Client` via a proxy server
```crystal
host = URI.parse("https://www.google.com")
response = ConnectProxy::HTTPClient.new(host) do |client|
client.exec("GET", "/")
end
response.success?
```
By default the HTTP client will pick up the `https_proxy` or `http_proxy` environment variables and use the URLs configured in there.
However you can override the environment or provide your own proxy server.
```crystal
host = URI.parse("https://www.google.com")
client = ConnectProxy::HTTPClient.new(host)
proxy = ConnectProxy.new("134.209.219.234", 80, {username: "admin", password: "pass"})
client.set_proxy(proxy)
response = client.exec("GET", "/")
response.success?
```
## Forcing Proxy Support
It's possible to simply introduce proxy support to any app by including extensions to the core classes.
I wouldn't recommend this unless there are too many libs to patch / you don't control the code directly
```crystal
# Patches ::HTTP::Client
require "connect-proxy/ext/http-client"
# Patches ::HTTP::Websocket
require "connect-proxy/ext/websocket"
```
This method requires you to use the standard proxy ENV vars
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This release
- Version
2.0.5- Tagged
- Jul 15, 2026
- Commit
b2ca742438d2- Crystal
>= 0.36.1- Indexed
- yes
Dependents
Repository
github.com/spider-gazelle/connect-proxy
Metadata
- Created
- Aug 12, 2026
- Updated
- Aug 12, 2026
- Synced
- Aug 12, 2026
- Versions
- 14