Updating hashes
Summary: GitHub commits:
https://github.com/facebook/CacheLib/commit/131894ee9cfdc7844d3afe2e5c0fb029fcf0922e https://github.com/facebook/fb303/commit/dbf38812da70f065e81aeaabaa45c7751f95d1ef https://github.com/facebook/fbthrift/commit/06b44f1cec1ad98e090971cbfd7def33cf509d46 https://github.com/facebook/folly/commit/866efdcff136065dd195f7914e2c24187e6d4189 https://github.com/facebook/hermes/commit/65df94b394f7c3a6417d4efbaf613b7ae7608494 https://github.com/facebook/mvfst/commit/cbf07a90962938c40ed11d8899d0e8b2e8771dd5 https://github.com/facebook/proxygen/commit/029d51d1070ba40ea2215fc5f9e8f70df93e438a https://github.com/facebook/pyrefly/commit/fb7004fb993c92927a5264de237daf64ef601c55 https://github.com/facebook/wangle/commit/0d0fd40dc75adf157f9cfa75b4e0963c9c527bce https://github.com/facebookexperimental/edencommon/commit/150a9280848272c64a7623de979697b60b0f71cc https://github.com/facebookexperimental/rust-shed/commit/71a5492f7e1f3686903f9fb40555b2202afb9d15 https://github.com/facebookincubator/fizz/commit/cbdf23e3df653bd4d44898c09545dd0f5cdc923b
Reviewed By: kainanpeace666
fbshipit-source-id: 96dc26580af50bce1d4bc8bba1c3011bc90e8dd6
版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9
京公网安备 11010802047560号
OpenR: Open Routing
Open Routing, OpenR, is Facebook’s internally designed and developed Interior Routing Protocol/Platform. OpenR was originally designed and built for performing routing on the Terragraph mesh network. OpenR’s flexible design has led to its adoption in other networks, including Facebook’s new WAN network, Express Backbone.
Documentation
Please refer to our extensive Documentation to get started with OpenR.
Library Examples
Please refer to the
examplesdirectory to see some useful ways to leverage the libraries to build software to run with OpenR.Resources
Contribute
Take a look at
Developer GuideandCONTRIBUTING.mdto get started contributing. The Developer Guide outlines best practices for code contribution and testing. Any single change should be well tested for regressions and version compatibility.Code of Conduct
The code of conduct is described in
CODE_OF_CONDUCT.mdRequirements
We have tried
OpenRon Ubuntu 24.04 LTS (earlier versions are no longer supported) and CentOS Stream 9. OpenR should work on all Linux based platforms.Build
Repo Directory Structure
At the top level of this repo are the
buildandopenrdirectories. Under the former is a tool,gen, that contains scripts for building the project. Theopenrdirectory contains the source for the project.Dependencies
OpenR requires these dependencies for your system and follows the traditional cmake build steps below.
cmakegflagsgtestlibsodiumzstdfollyfbthriftre2-develOne Step Build - Ubuntu
We’ve provided a script,
build/build_openr.sh, tested on Ubuntu LTS releases. It usesgendeps.pyto install all necessary dependencies, compile OpenR and install C++ binaries as well as python tools. Please modify the script as needed for your platform. Also, note that some library dependencies require a newer version than provided by the default package manager on the system and hence we are compiling them from source instead of installing via the package manager. Please see the script for those instances and the required versions.Build Steps
If you make any changes you can run
cmake ../openrandmakefrom the build directory to build openr with your changes.Installing
openrbuilds both static and dynamic libraries and the install step installs libraries and all header files to/opt/facebook/openr/liband/opt/facebook/openr/include/along with python modules in your Python’ssite-packagesdirectory. Note: thebuild_openr.shscript will run this step for yougetdeps.pyto install elsewherebuild_openr.shInstalling Python Libraries + CLI
You will need python
piporsetuptoolsto build and install python modules. All library dependencies will be automatically installed except thefbthrift-pythonmodule which you will need to install manually using steps similar to those described below. This will installbreeze, a cli tool to interact with OpenR.fbthrift/thrift1compiler to be installed and in PATHDocker Building / Usage
OpenR now has a
Dockerfile. It usesgendeps.pyto build all dependencies + OpenR.Running
You can specify a config file by bind mount a directory with a
openr.cfgfile in /config/configinto the container/config/openr.confLicense
OpenR is MIT licensed.