Skip to main content

A fast and performant proxy and aggregator for querying multiple instances of an API spread across globally distributed data centers.

https://travis-ci.org/rackerlabs/curryproxy.png

Capabilities

  • CurryProxy can handle multiple routes for use against different revisions of an API or for use against completely unrelated APIs. See etc/routes.sample.json for an example configuration.

  • Simple request forwarding (useful for preserving backwards compatability with pre-CurryProxy versions of an API hosted in a single datacenter)

    • Example: GET https://api.example.com/v1.0/foo/bar forwarded to GET https://1.api.example.com/v1.0/foo/bar

  • Advanced request forwarding to multiple endpoints

    • Example: GET https://api.example.com/1,2/v1.0/foo/bar forwarded to the following:

      • GET https://1.api.example.com/v1.0/foo/bar

      • GET https://2.api.example.com/v1.0/foo/bar

    • Requests are made in parallel

    • JSON responses received from multiple endpoints are aggregated and returned to the client

      • Example: {"foo": 1} received from 1 and {"bar": 2} received from 2 are aggregated to [{"foo": 1}, {"bar": 2}] and returned to the client

    • Rich, meaningful errors logged and returned to the client when a proxied request fails

Installation

  • pip install curryproxy

  • Setup the configuration files and start it up!

Limitations

Roadmap

  • OData support for server-side ordering and paging

  • Response caching for a specified time

Release files for curryproxy 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for curryproxy 1.0.1
File Size Uploaded
curryproxy-1.0.1.tar.gz 24.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for curryproxy 1.0.1
File Interpreter ABI Platform
curryproxy-1.0.1-py2-none-any.whl Python 2 none any Details

Total release size: 94.5 kB

Release files / curryproxy-1.0.1.tar.gz

Download URL curryproxy-1.0.1.tar.gz
Size 24.4 kB
Tags Source
SHA-256 checksum
How to use checksums
c1f96c18f03e76633fcc5d199e50c99319631e06017287d4e4d992ba1f850e9f
BLAKE2b-256 checksum
How to use checksums
74a136855c58fd1f245a91c9716d9dc210ac03ceec2f8ebfed6850278d78bcf6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / curryproxy-1.0.1-py2-none-any.whl

Download URL curryproxy-1.0.1-py2-none-any.whl
Size 70.1 kB
Tags Python 2
SHA-256 checksum
How to use checksums
c6a676da6204abe758d93ab5fd00218958a31d400fb30a36c73c63f3cfd10aed
BLAKE2b-256 checksum
How to use checksums
e5ddf8f1dade6ff2df1c55c4da88e84995dadb2533575a28f423fc0cb03b06da
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

2.1.1

2 release files

1.1.2

2 release files

1.1

2 release files

1.0.2

2 release files

This release

1.0.1 This release

2 release files

1.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page