← All open source projects

Guzzle

guzzle/guzzle

Guzzle is an extensible PHP HTTP client with synchronous and asynchronous requests.

Forks 2,390
Author guzzle
Language PHP
License MIT
Synced 2026-06-27

In Short

Guzzle simplifies HTTP requests in PHP: query strings, POST, JSON, cookies, uploads, downloads, PSR-7, and PSR-18 live in one mature client.

What It Is

Guzzle is an HTTP client for PHP. It is used by applications that communicate with external APIs, upload files, send JSON, handle cookies, or build integrations.

What Is Inside

The project uses PSR-7 interfaces for requests, responses, and streams, and supports PSR-18. That helps Guzzle coexist with other compatible libraries.

How People Use It

Guzzle is common in server applications, background jobs, SDKs, and integration layers. A developer describes a request, receives a response object, and handles status, headers, and body.

Example

GET Request

The example shows a basic request to a JSON API and response parsing through a PSR-compatible object.

Language: PHP
$client = new \GuzzleHttp\Client();
$response = $client->get("https://api.example.com/users");

$data = json_decode((string) $response->getBody(), true);

Strengths

Guzzle’s strength is versatility. One client covers simple GET requests and more complex scenarios with streams, multipart data, and asynchronous work.

Limits

The limitation is scope. Guzzle sends HTTP, but retry policy, rate limits, caching, and domain error handling still need explicit application design.

Project Context

Guzzle is maintained in the guzzle/guzzle repository; its public history starts on 2011-02-28. The primary metadata language is PHP, and the license is MIT.

This context keeps the page grounded in a specific repository: the project has an owner, technical base, license, change history, and real constraints of its ecosystem.

Guzzle should be evaluated through a concrete scenario: who will maintain it, where it fits in the existing stack, which updates must be tracked, and what happens if it fails. That view is more useful than installing a project just because it is popular, because open source helps only when its role in the system is clear to the team.