http_client
Version, currently main branch1 version
- main branchlatestJul 12, 2026
github.com/jgaskins/http_client
Pooling-enabled HTTP client for Crystal
9 stars
0 dependents
License: MIT
Installation
# Add this to your shard.yml
dependencies:
http_client:
github: jgaskins/http_client
branch: mainmain is a branch, not a release, so this tracks it rather than pinning a version.
Then run:
shards installshard.yml
- Crystal
>= 1.13.0- License
- MIT
- Author
- Jamie Gaskins <jgaskins@hey.com>
Dependencies
Runtime Dependencies
- db*github: crystal-lang/crystal-db
Development Dependencies
- http_client*path: .dev
README
# `HTTPClient`
A HTTP client that transparently pools connections. You can use it anywhere you would use an [`HTTP::Client`](https://crystal-lang.org/api/1.13.1/HTTP/Client.html) because it *is* an `HTTP::Client`.
## Installation
1. Add the dependency to your `shard.yml`:
```yaml
dependencies:
http_client:
github: jgaskins/http_client
```
2. Run `shards install`
## Usage
```crystal
require "http_client"
http = HTTPClient.new(URI.parse("https://api.example.com"))
http.get "/"
# => #<HTTP::Client::Response:...>
```
### OAuth
Using a pooled HTTP client allows you to use a single `OAuth2::Client` instance for your entire app.
```crystal
require "oauth2"
require "http_client"
EXAMPLE_OAUTH2 = OAuth2::Client.new(
host: "api.example.com",
client_id: ENV["OAUTH2_CLIENT_ID"],
client_secret: ENV["OAUTH2_CLIENT_SECRET"],
redirect_uri: ENV["OAUTH2_REDIRECT_URI"],
)
EXAMPLE_OAUTH2.http_client = HTTPClient.new("https://api.example.com")
```
## Contributing
1. Fork it (<https://github.com/jgaskins/http_client/fork>)
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create a new Pull Request
## Contributors
- [Jamie Gaskins](https://github.com/jgaskins) - creator and maintainer
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This branch
- Branch
main- Seen
- Jul 12, 2026
- Crystal
>= 1.13.0- Indexed
- yes
Dependents
No indexed shard depends on this one yet.
Repository
github.com/jgaskins/http_client
Metadata
- Created
- Aug 12, 2026
- Updated
- Aug 14, 2026
- Synced
- Aug 14, 2026
- Versions
- 1