Updating hashes
Summary: GitHub commits:
https://github.com/WhatsApp/erlang-language-platform/commit/cc2024b21d684e24cc3a0c4a8d1676e907b724e7 https://github.com/facebook/CacheLib/commit/50986d1c6001b77a6fcd5c91b6ba88d68444f697 https://github.com/facebook/fb303/commit/b3dd7124a4a435a31306dada17eb5d0e95aa580f https://github.com/facebook/fbthrift/commit/921b59d4fb61c8b8cc0ce4eade597d4687f402e1 https://github.com/facebook/folly/commit/c8c7adb72c6d73e2fced5ff5cebc96aa3ff65b2c https://github.com/facebook/hermes/commit/bd254f2ec2088bce79f0a675d54a2feb471e6a4e https://github.com/facebook/mvfst/commit/7c41b1e538d4abbcad78b52eeda8cc8b1e019548 https://github.com/facebook/proxygen/commit/694c58132151467e07732dbe2926f01f6a363820 https://github.com/facebook/pyrefly/commit/afe65f2272be705530df792160febdbcb16ab9cd https://github.com/facebook/wangle/commit/4861bc487106abd62d9f3e469146004636fccf4c https://github.com/facebookexperimental/edencommon/commit/83dfee97ac1946a00e8cea7e231e0b54135a05a7 https://github.com/facebookexperimental/rust-shed/commit/b2f41ce1662cf6f16724830884237d68acf32b58 https://github.com/facebookincubator/fizz/commit/756a0d4491d5d2dd72a262e28fbb3c529b27aee6
Reviewed By: dzhdhr
fbshipit-source-id: 3854e98c1a5e543c7fcfd0b4e4defdd71a66b7d4
版权所有:中国计算机学会技术支持:开源发展技术委员会
京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 and compile and install the OpenR C++ binaries. 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
The install step installs the Open/R binaries, generated Thrift libraries, source and generated Thrift headers under
/opt/facebook/openr, and Python modules in your Python’ssite-packagesdirectory. Open/R executables and tests link the granular component libraries directly; the build does not install a monolithic Open/R implementation library. Note: thebuild_openr.shscript will run this step for yougetdeps.pyto install elsewherebuild_openr.shInstalling Python Libraries + CLI
The Docker build runs
build/build_breeze.shto generate modern Thrift Python bindings, install their matchingfbthrift-pythonruntime, and install thebreezeCLI in an isolated virtual environment.openr/py/setup.pypackages the staged source and generated bindings; it is not a standalone source-tree build entry point.Docker 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.