GithubHelp home page GithubHelp logo

anthrax3 / reverse-proxy Goto Github PK

View Code? Open in Web Editor NEW

This project forked from microsoft/reverse-proxy

0.0 1.0 0.0 15.39 MB

A toolkit for developing high-performance HTTP reverse proxy applications.

Home Page: https://microsoft.github.io/reverse-proxy

License: MIT License

C# 86.15% Batchfile 0.08% Shell 5.28% PowerShell 8.02% CMake 0.47%

reverse-proxy's Introduction

Welcome to the YARP project

YARP (which stands for "YARP: A Reverse Proxy") is a project to create a reverse proxy server. We found a bunch of internal teams at Microsoft who were either building a reverse proxy for their service or had been asking about APIs and tech for building one, so we decided to get them all together to work on a common solution, this project.

YARP is a reverse proxy toolkit for building fast proxy servers in .NET using the infrastructure from ASP.NET and .NET. The key differentiator for YARP is that it's been designed to be easily customized and tweaked to match the specific needs of each deployment scenario.

We expect YARP to ship as a library and project template that together provide a robust, performant proxy server. Its pipeline and modules are designed so that you can then customize the functionality for your needs. For example, while YARP supports configuration files, we expect that many users will want to manage the configuration programmatically based on their own backend configuration management system, YARP will provide a configuration API to enable that customization in-proc. YARP is designed with customizability as a primary scenario, rather than requiring you to break out to script or having to rebuild from source.

Current Status

For the latest status updates, see our Status Report thread. Subscribe to notifications on that issue and we'll comment regularly with status updates.

Build

To build the repo, you should only need to run build.cmd (on Windows) or build.sh (on Linux or macOS). The script will download the .NET SDK and build the solution.

For VS on Windows, you can run the startvs.cmd script to launch Visual Studio on Windows using the appropriate local copy of the .NET SDK.

To set up local development with Visual Studio, Visual Studio for Mac or Visual Studio Code, you need to put the local copy of the .NET SDK in your PATH environment variable. Our Restore script fetches the latest build of .NET 5 and installs it to a .dotnet directory within this repository.

We provide some scripts to set all this up for you. Just follow these steps:

  1. Run the restore.cmd/restore.sh script to fetch the required .NET SDK locally (to the .dotnet directory within this repo)
  2. "Dot-source" the activate script to put the local .NET SDK on the PATH
    1. For PowerShell, run: . .\activate.ps1 (note the leading . , it is required!)
    2. For Linux/macOS/WSL, run: . ./activate.sh
    3. For CMD, there is no supported script. You can manually add the .dotnet directory within this repo to your PATH. Ensure where dotnet shows a path within this repository!
  3. Launch VS, VS for Mac, or VS Code!

When you're done, you can run the deactivate function to undo the changes to your PATH.

If you're having trouble building the project, or developing in Visual Studio, please file an issue to let us know and we'll help out (and fix our scripts/tools as needed)!

Getting started

Roadmap

Coming Soon

Reporting security issues and bugs

YARP is a preview project, and as such we expect all users to take responsibility for evaluating the security of their own applications.

Security issues and bugs should be reported privately, via email, to the Microsoft Security Response Center (MSRC) at [email protected]. You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Further information, including the MSRC PGP key, can be found at the Microsoft Security Response Center.

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

reverse-proxy's People

Contributors

akanieski avatar alnikola avatar analogrelay avatar danmoseley avatar davidfowl avatar davidni avatar dotnet-maestro[bot] avatar epignosisx avatar ericwj avatar ganesanarun avatar halter73 avatar ihvo avatar isaacabraham avatar jboelter avatar jmezach avatar johnazariah avatar jrunyen avatar kahbazi avatar karelz avatar manickap avatar marusyk avatar meladkamari avatar microsoftopensource avatar mihazupan avatar moientajik avatar noahstahl avatar rwkarg avatar samsp-msft avatar sebastienros avatar tratcher avatar

Watchers

 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.