1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-OpenR

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Открытое маршрутизирование: OpenR

Поддержите Украину Статус сборки Статус документации

Open Routing, или OpenR, — это внутренне спроектированный и реализованный платформой протокол маршрутизации. OpenR был создан сначала для маршрутизации в сетях Terragraph. Гибкая архитектура OpenR привела к его использованию в других сетях, включая новую WAN-сеть Express Backbone компании Facebook.

Документация


Для начала работы с OpenR обратитесь к нашей подробной [документации](https://openr.readthed Yönters.io/).

Примеры библиотек


Для просмотра полезных способов использования библиотек для создания программ, работающих с OpenR, обратитесь к директории examples.

Ресурсы


Вклад


Чтобы начать вкладывать, ознакомьтесь с Developer Guide и CONTRIBUTING.md. Разработчики-руководство описывает лучшие практики для внесения изменений в код и тестирования. Любое одно изменение должно быть тщательно протестировано на наличие регрессий и совместимости версий.## Код поведения


Код поведения описан в CODE_OF_CONDUCT.md

Требования


Мы протестировали OpenR на Ubuntu-16.04, Ubuntu-18.04 и CentOS 7/8. OpenR должен работать на всех платформах на основе Linux.

  • Компилятор, поддерживающий C++17 или выше

Сборка


Структура директорий репозитория

На верхнем уровне этого репозитория находятся директории build и openr. Под первым находится инструмент gen, содержащий скрипты для сборки проекта. Директория openr содержит исходный код проекта.

Зависимости

OpenR требует этих зависимостей для вашей системы и следует традиционным шагам сборки cmake ниже.

  • cmake
  • gflags
  • gtest
  • libsodium
  • zstd
  • folly
  • fbthrift
  • re2-devel

Один шаг сборки — Ubuntu

Мы предоставили скрипт build/build_openr.sh, который был протестирован на LTS-версиях Ubuntu. Скрипт использует gendeps.py для установки всех необходимых зависимостей, компиляции OpenR и установки C++-библиотек, а также python-инструментов. Пожалуйста, модифицируйте скрипт в соответствии с вашей платформой. Также обратите внимание, что некоторые библиотечные зависимости требуют более новой версии, чем та, которая предоставляется стандартным менеджером пакетов системы, поэтому мы компилируем их из исходников вместо установки через менеджер пакетов. Пожалуйста, обратитесь к скрипту для этих случаев и необходимых версий.### Шаги сборки

# Установка зависимостей и сборка openr
bash ./build/build_openr.sh

# Для запуска тестов (некоторые тесты требуют привилегий sudo)
python3 build/fbcode_builder/getdeps.py test \
  --src-dir=. \
  --project-install-prefix openr:/opt/facebook \
  openr

Если вы внесли какие-либо изменения, вы можете запустить cmake ../openr и make из каталога сборки, чтобы собрать openr с вашими изменениями.

Установка

openr собирает как статические, так и динамические библиотеки, и шаг установки устанавливает библиотеки и все заголовочные файлы в /opt/facebook/openr/lib и /opt/facebook/openr/include/, а также python-модули в вашем каталоге site-packages. Примечание: скрипт build_openr.sh выполнит этот шаг за вас.

  • Вручную вы можете использовать getdeps.py для установки в другое место
    • см. build_openr.sh

Установка Python-библиотек + CLI

Для сборки и установки python-модулей вам потребуется python pip или setuptools. Все библиотечные зависимости будут автоматически установлены, кроме модуля fbthrift-python, который вам потребуется установить вручную с помощью шагов, аналогичных тем, которые описаны ниже. Это установит breeze, консольный инструмент для взаимодействия с OpenR.

  • Установка Python требует компилятора fbthrift / thrift1, который должен быть установлен и доступен в PATH
cd openr/openr/py
python setup.py build
sudo python setup.py install

Сборка и использование Docker

У OpenR теперь есть Dockerfile. Он использует gendeps.py для сборки всех зависимостей + OpenR.```console docker build --network host .


#### Запуск

Вы можете указать файл конфигурации путём привязки каталога с файлом `openr.cfg` в /config

```console
docker run --name openr --network host openr_ubuntu
  • Чтобы использовать пользовательскую конфигурацию, примонтируйте /config в контейнер
    • Бинарник OpenR будет искать файл конфигурации по пути /config/openr.conf

Лицензия

OpenR распространяется с лицензией MIT.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

OpenR — это маршрутный протокол/платформа, внутренне разработанный и спроектированный в Facebook. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-OpenR.git
git@api.gitlife.ru:oschina-mirror/mirrors-OpenR.git
oschina-mirror
mirrors-OpenR
mirrors-OpenR
main