Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

fastapi-proxy-lib

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fastapi-proxy-lib

HTTP/WebSocket proxy for starlette/FastAPI.

  • 0.1.0
  • PyPI
  • Socket score

Maintainers
1

FastAPI Proxy Lib

HTTP/WebSocket proxy for starlette/FastAPI

CI/CDCI: lint-test pre-commit.ci status
CI: docs CI: publish
Codecodecov Code style: black Ruff Checked with pyright
PackagePyPI - Version PyPI - Downloads PyPI - Python Version
MetaHatch project GitHub License

Documentation: https://wsh032.github.io/fastapi-proxy-lib/

Source Code: https://github.com/WSH032/fastapi-proxy-lib/


Features

  • Out of the box ! Helper functions to get FastAPI app/router for proxy conveniently.
  • Only Starlette is required for it to work (FastAPI is optional).
  • Support both HTTP and WebSocket proxy.
    • Supports all HTTP methods (GET, POST, etc.)
  • Support both reverse proxy and forward proxy.
  • Transparently and losslessly handle all proxy requests, Including HTTP headers, cookies, query parameters, body, etc.
  • Asynchronous streaming transfer, support file proxy.

other features

  • Strict linting and strict-mode Pyright type checking.
  • 100% Type Completeness, Code coverage of over 95%.
  • Forced keep-alive connections, minimizing proxy latency.
  • Handle errors as gracefully as possible.
    • fastapi-proxy-lib has a well-designed mechanism behind the scenes to handle exceptional websocket disconnections for you.
    • fastapi-proxy-lib will exit as gracefully as possible.

FastAPI Proxy Lib stands on the shoulders of giants

So, it perfectly supports all features of httpx.AsyncClient, you can even use your custom AsyncClient, Transport.

except cookies and base_url arguments, which are taken over by fastapi-proxy-lib

Installation

!!! note

We follow semantic versioning.<br>
This is a young project, and before 1.0.0, there may be changes in the API (we try to avoid that).<br>
We will release security updates at any time, please try to keep the version updated, instead of pinning to the old version.<br>
pin to `major version` is recommended.<br>
visit our `CHANGELOG.md` for more info.
pip install fastapi-proxy-lib

Perhaps you've noticed that we're installing fastapi-proxy-lib[standard] instead of fastapi-proxy-lib. The difference is:

  • The former will install FastAPI at the same time.
  • The latter installs only the basic dependencies for fastapi-proxy-lib.

If you only need to use this library with Starlette, you only need to install the latter.

Quick start

With the helper functions, get the FastAPI proxy server app is very convenient and out of the box:

from fastapi_proxy_lib.fastapi.app import reverse_http_app

app = reverse_http_app(base_url="http://www.example.com/foo/")

That's all! Now, you can launch the proxy server with uvicorn:

uvicorn main:app  --host 127.0.0.1 --port 8000

Then, visit http://127.0.0.1:8000/bar?baz=1, you will get the response from http://www.example.com/foo/bar?baz=1.

Continue, please visit to our documentation 📚 for more details:

  • support for FastAPI router
  • only Starlette dependency
  • WebSocket proxy

development

English is not the native language of the author (me), so if you find any areas for improvement in the documentation, your feedback is welcome.

If you think this project helpful, consider giving it a star GitHub Repo stars, which makes me happy. :smile:

License

This project is licensed under the terms of the Apache License 2.0.

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc