Giter Club home page Giter Club logo

pyrox's Introduction

The fast Python HTTP middleware server

What is Pyrox?

Hosted REST Interceptors!

Pyrox is a HTTP reverse proxy that can intercept requests ahead of an upstream HTTP REST service. This allows reuse of common middleware functions like: message enhancement, dynamic routing, authentication, authorization, resource request rate limiting, service distribution, content negotiation and content transformation. These services can then be scaled horizontally separate the origin REST endpoint.

Build on top of the Tornado Async I/O python library, the HTTP code inside Pyrox can scale to thousands of concurrent clients and proxy them to a similar number of upstream REST services.

Documentation

Thanks Read the Docs!

Features

  • Extensive plugin support with the ability to source middleware code from multiple, separate plugin paths
  • Fast HTTP parser written in C with much of the code based on the Joyent HTTP Parser
  • Utilizes Tornado Async I/O
  • Low dependency footprint

Building Pyrox

Building pyrox requires only a few dependencies. For development use cases, installing cython is required.

pip install -r tools/install_requires.txt -r tools/tests_require.txt
python setup.py build_ext --inplace
nosetests

Running Pyrox

After building pyrox you should be able to run it with the proxy shell script located within the project root.

./pyrox_dev.sh

usage: pyrox_dev.sh [-h] [-c [OTHER_CFG]] [-p [PLUGIN_PATHS]] start

Pyrox, the fast Python HTTP middleware server.

positional arguments:
  start              Starts the daemon.

optional arguments:
  -h, --help         show this help message and exit
  -c [OTHER_CFG]     Sets the configuration file to load on startup. If unset
                     this option defaults to /etc/pyrox/pyrox.conf
  -p [PLUGIN_PATHS]  "/" character separated string of paths to import from
                     when loading plugins.

Filter Examples

That Legal Thing...

This software library is released to you under the MIT License. See LICENSE for more information.

pyrox's People

Contributors

zinic avatar chadlung avatar stevendgonzales avatar akatrevorjay avatar

Watchers

Jon Armstrong avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.