Skip to content
/ redc Public

High-performance, asynchronous HTTP client in Python, driven by libcurl

License

Notifications You must be signed in to change notification settings

AYMENJD/redc

Repository files navigation

Version CURL version Downloads

RedC is a high-performance, asynchronous HTTP client library for Python, built on top of the powerful curl library. It provides a simple and intuitive interface for making HTTP requests and handling responses

Features

  • Protocols: Supports HTTP/1.1, HTTP/2, and HTTP/3
  • curl-powered: Built on top of libcurl for performance and reliability
  • Streaming: Efficient handling of large responses
  • Proxying: Simple and flexible proxy configuration
  • Google CA Trust: Uses trustifi as the default TLS trust store

Installation

You can install RedC via pip:

pip install redc

Quick Start

import asyncio
from redc import Client

async def main():
    async with Client(base_url="https://jsonplaceholder.typicode.com") as client:
        # Make a GET request
        response = await client.get("/posts/1")
        response.raise_for_status()
        print(response.status_code)  # 200
        print(response.json())  # {'userId': 1, 'id': 1, 'title': '...', 'body': '...'}

        # Make a POST request with JSON data
        response = await client.post(
            "/posts",
            json={"title": "foo", "body": "bar", "userId": 1},
        )
        response.raise_for_status()
        print(response.status_code)  # 201
        print(response.json())  # {'id': 101, ...}

asyncio.run(main())

License

MIT LICENSE

About

High-performance, asynchronous HTTP client in Python, driven by libcurl

Topics

Resources

License

Stars

Watchers

Forks