Bump docker/login-action from 4.5.1 to 4.7.0 (#654)
Summary: Bumps docker/login-action from 4.5.1 to 4.7.0.
Release notes
Sourced from docker/login-action's releases.
v4.7.0
- Preserve explicit ECR settings in
registry-authby@crazy-maxin docker/login-action#1089- Use registry hosts for scoped credentials by
@crazy-maxin docker/login-action#1088- Raise Docker Hub OIDC max expiry to 6 hours by
@crazy-maxin docker/login-action#1068- Log Docker Hub OIDC token exchange progress by
@crazy-maxin docker/login-action#1061- Bump
@aws-sdk/client-ecrand@aws-sdk/client-ecr-publicto 3.1154.0 in docker/login-action#1093- Bump
@docker/actions-toolkitfrom 0.94.0 to 0.107.0 in docker/login-action#1100- Bump
@humanfs/nodefrom 0.16.7 to 0.16.8 in docker/login-action#1077- Bump csv-parse from 7.0.1 to 7.0.3 in docker/login-action#1078
- Bump handlebars from 4.7.9 to 4.7.10 in docker/login-action#1091
- Bump js-yaml from 5.2.2 to 5.5.0 in docker/login-action#1066
- Bump postcss from 8.5.22 to 8.5.26 in docker/login-action#1071
- Bump postcss-selector-parser from 7.1.1 to 7.1.6 in docker/login-action#1092
- Bump source-map-js from 1.2.1 to 1.2.2 in docker/login-action#1090
- Bump undici from 6.27.0 to 6.29.1 in docker/login-action#1085
- Bump uuid from 14.0.1 to 14.0.3 in docker/login-action#1096
Full Changelog: https://github.com/docker/login-action/compare/v4.6.0...v4.7.0
v4.6.0
- Harden buildx scoped config path handling by
@crazy-maxin docker/login-action#1059- Bump
@aws-sdk/client-ecrand@aws-sdk/client-ecr-publicto 3.1095.0 in docker/login-action#1051- Bump js-yaml from 5.2.1 to 5.2.2 in docker/login-action#1057
- Bump postcss from 8.5.10 to 8.5.22 in docker/login-action#1056
Full Changelog: https://github.com/docker/login-action/compare/v4.5.2...v4.6.0
v4.5.2
- Surface Docker Hub OIDC error responses by
@crazy-maxin docker/login-action#1058Full Changelog: https://github.com/docker/login-action/compare/v4.5.1...v4.5.2
Commits
81c6f93Merge pull request #1100 from docker/dependabot/npm_and_yarn/docker/actions-t...1b16c8dMerge pull request #1096 from docker/dependabot/npm_and_yarn/uuid-14.0.3ac86b5e[dependabot skip] chore: update generated content1476d84build(deps): bump@docker/actions-toolkitfrom 0.94.0 to 0.107.0503cee6Merge pull request #1095 from docker/dependabot/github_actions/actions/create...f093535Merge pull request #1099 from docker/dependabot/github_actions/codecov/codeco...d5ae7f1Merge pull request #1098 from docker/dependabot/github_actions/docker/bake-ac...6f97507Merge pull request #1097 from docker/dependabot/github_actions/docker/bake-ac...006d61fMerge pull request #1094 from docker/dependabot/github_actions/codeql-actions...93f5f52Merge pull request #1093 from docker/dependabot/npm_and_yarn/aws-sdk-dependen...- Additional commits viewable in compare view
Dependabot will resolve any conflicts with this PR as long as you don’t alter it yourself. You can also trigger a rebase manually by commenting
dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
dependabot rebasewill rebase this PRdependabot recreatewill recreate this PR, overwriting any edits that have been made to itdependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependencydependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)Pull Request resolved: https://github.com/facebook/proxygen/pull/654
Reviewed By: sandarsh
Differential Revision: D127621200
Pulled By: kvtsoy
fbshipit-source-id: ec844bd852e9ae2f2149cae538c5050e6af7c056
版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9
京公网安备 11010802047560号
Proxygen: Facebook’s C++ HTTP Libraries
This project comprises the core C++ HTTP abstractions used at Facebook. Internally, it is used as the basis for building many HTTP servers, proxies, and clients. This release focuses on the common HTTP abstractions and our simple HTTPServer framework. Future releases will provide simple client APIs as well. The framework supports HTTP/1.1, SPDY/3, SPDY/3.1, HTTP/2, and HTTP/3. The goal is to provide a simple, performant, and modern C++ HTTP library.
We have a Google group for general discussions at https://groups.google.com/d/forum/facebook-proxygen.
The original blog post also has more background on the project.
Learn More in This Intro Video
Installing
Note that currently this project has been tested on Ubuntu 18.04 and Mac OSX although it likely works on many other platforms.
You will need at least 3 GiB of memory to compile
proxygenand its dependencies.Easy Install
Just run
./build.shfrom theproxygen/directory to get and build all the dependencies andproxygen. You can run the tests manually withcd _build/ && make test. Then run./install.shto install it. You can remove the temporary build directory (_build) and./build.sh && ./install.shto rebase the dependencies, and then rebuild and reinstallproxygen.Package Managers
You can download and install proxygen using the vcpkg dependency manager:
The proxygen port in vcpkg is kept up to date by Microsoft team members and community contributors. If the version is out of date, please create an issue or pull request on the vcpkg repository.
Other Platforms
If you are running on another platform, you may need to install several packages first. Proxygen and
follyare all Autotools based projects.Introduction
Directory structure and contents:
proxygen/external/proxygen/lib/proxygen/lib/http/proxygen/lib/services/proxygen/lib/utils/proxygen/httpserver/proxygen/lib/for building simple C++ http servers. We recommend building on top of these APIs.Architecture
The central abstractions to understand in
proxygen/libare the session, codec, transaction, and handler. These are the lowest level abstractions, and we don’t generally recommend building off of these directly.When bytes are read off the wire, the
HTTPCodecstored insideHTTPSessionparses these into higher-level objects and associates with it a transaction identifier. The codec then calls intoHTTPSessionwhich is responsible for maintaining the mapping between transaction identifier andHTTPTransactionobjects. Each HTTP request/response pair has a separateHTTPTransactionobject. Finally,HTTPTransactionforwards the call to a handler object which implementsHTTPTransaction:: Handler. The handler is responsible for implementing business logic for the request or response.The handler then calls back into the transaction to generate egress (whether the egress is a request or response). The call flows from the transaction back to the session, which uses the codec to convert the higher-level semantics of the particular call into the appropriate bytes to send on the wire.
The same handler and transaction interfaces are used to both create requests and handle responses. The API is generic enough to allow both.
HTTPSessionis specialized slightly differently depending on whether you are using the connection to issue or respond to HTTP requests.Moving into higher levels of abstraction,
proxygen/HTTP serverhas a simpler set of APIs and is the recommended way to interface withproxygenwhen acting as a server if you don’t need the full control of the lower level abstractions.The basic components here are
HTTPServer,RequestHandlerFactory, andRequestHandler. AnHTTPServertakes some configuration and is given aRequestHandlerFactory. Once the server is started, the installedRequestHandlerFactoryspawns aRequestHandlerfor each HTTP request.RequestHandleris a simple interface users of the library implement. Subclasses ofRequestHandlershould use the inherited protected memberResponseHandler* downstream_to send the response.Using it
Proxygen is a library. After installing it, you can build your C++ server. Try
cding to the directory containing the echo server atproxygen/httpserver/samples/echo/.After building proxygen you can start the echo server with
_build/proxygen/httpserver/proxygen_echoand verify it works using curl in a different terminal:You can find other samples:
_build/proxygen/httpserver/proxygen_push),_build/proxygen/httpserver/proxygen_static)_build/proxygen/httpserver/proxygen_proxy)_build/proxygen/httpclient/samples/curl/proxygen_curl)QUIC and HTTP/3
Proxygen supports HTTP/3!
It depends on Facebook’s mvfst library for the IETF QUIC transport implementation.
This comes with a handy command-line utility that can be used as an HTTP/3 server and client.
Sample usage:
The utility supports the qlog logging format; just start the server with the
--qlogger_pathoption and many knobs to tune both the quic transport and the http layer.Documentation
We use Doxygen for Proxygen’s internal documentation. You can generate a copy of these docs by running
doxygen Doxyfilefrom the project root. You’ll want to look athtml/namespaceproxygen.htmlto start. This will also generatefollydocumentation.License
See LICENSE.
Contributing
Contributions to Proxygen are more than welcome. Read the guidelines in CONTRIBUTING.md. Make sure you’ve signed the CLA before sending in a pull request.
Whitehat
Facebook has a bounty program for the safe disclosure of security bugs. If you find a vulnerability, please go through the process outlined on that page and do not file a public issue.