Содержание
Введение
Beast — это библиотека C ++ только для заголовков, служащая основой для написания совместимых сетевых библиотек, предоставляя низкоуровневый HTTP / 1, WebSocket и сетевой протокол типы словаря и алгоритмы, использующие согласованную асинхронную модель Boost.Asio.
Эта библиотека предназначена для:
-
Симметрия: Алгоритмы не зависят от ролей; создавать клиентов, серверы или и то, и другое.
-
Легкость использования: Пользователи Boost.Asio сразу поймут Beast.
-
Гибкость: Пользователи принимают важные решения, такие как управление буфером или потоками.
-
Производительность: Создавайте приложения, обрабатывающие тысячи и более соединений.
-
Основа для дальнейшего абстрагирования. Компоненты хорошо подходят для наращивания.
Появления
Описание
Это программное обеспечение находится в его первом официальном выпуске. Интерфейсы могут измениться в ответ на отзывы пользователей. Последние изменения см. В ИЗМЕНЕНИИ.
Требования
Эта библиотека предназначена для программистов, знакомых с Boost.Asio. Пользователи, которые хотят использовать асинхронные интерфейсы, должны уже знать, как создавать параллельные сетевые программы, используя обратные вызовы или сопрограммы.
- С ++ 11: Надежная поддержка большинства языковых функций.
- Увеличение: Boost.Asio и некоторые другие части Boost.
- OpenSSL: Требуется для использования TLS / Secure сокетов и примеров / тестов
При использовании Microsoft Visual C ++ требуется Visual Studio 2017 или более поздней версии.
Один из этих компонентов необходим для создания тестов и примеров:
- Правильно настроенный bjam / b2
- CMake 3.5.1 или новее (только для Windows)
Здание
Зверь только заголовок. Чтобы использовать его, просто добавьте необходимое #include
строку в исходные файлы, например:
#include <boost/beast.hpp>
Если вы используете сопрограммы, вам необходимо связать их с библиотекой Boost.Coroutine. Пожалуйста, посетите документацию по Boost, чтобы узнать, как это сделать для вашей конкретной системы сборки.
GitHub
Чтобы использовать последний официальный выпуск Beast, просто загрузите последний дистрибутив Boost и следуйте инструкциям по его интеграции в среду разработки. Если вы хотите создать примеры и тесты или если вы хотите предварительно просмотреть предстоящие изменения и функции, рекомендуется клонировать «суперпроект Boost» и работать с Beast «в дереве» (то есть подкаталогом libs / beast в суперпроект).
Официальный репозиторий содержит следующие ветки:
-
мастер Это самый последний снимок с кодом, который известен как стабильный.
-
развиваться Это самый последний снимок. Он может содержать нестабильный код.
Для каждой из этих ветвей требуется соответствующая ветвь Boost и все ее подпроекты. Например, если вы хотите использовать мастер
ветки Beast необходимо клонировать суперпроект Boost, переключиться на мастер в суперпроекте и приобретите все библиотеки Boost, соответствующие этой ветке, включая Beast.
Чтобы клонировать суперпроект локально и переключиться в каталог основного проекта, используйте:
git clone --recursive https://github.com/boostorg/boost.git
cd boost
«bjam» используется для создания библиотек Beast и Boost. В системе, отличной от Windows, используйте эту команду для создания bjam:
./bootstrap.sh
Из командной строки Windows создайте bjam с помощью этой команды:
.BOOTSTRAP.BAT
Сборка тестов и примеров
Для сборки тестов и примеров требуется установленный OpenSSL. Если OpenSSL установлен вне системы, вам нужно будет скопировать файл user-config.jam в свой домашний каталог и установить OPENSSL_ROOT
переменную среды в путь, содержащий установку OpenSSL.
Ubuntu / Debian
При установке в системный каталог OpenSSL будет автоматически найден и использован.
sudo apt install libssl-dev
Windows
Заменить path
в следующих фрагментах кода укажите путь, по которому вы установили vcpkg. Примеры предполагают 32-битную сборку, если вы собираете 64-битную версию, замените
x32-windows
с участием x64-windows
в пути.
vcpkg install openssl --triplet x32-windows
SET OPENSSL_ROOT=pathinstalledx32-windows
- Используя vcpkg и PowerShell:
vcpkg install openssl --triplet x32-windows
$env:OPENSSL_ROOT = "pathx32-windows"
vcpkg.exe install openssl --triplet x32-windows
export OPENSSL_ROOT=path/x32-windows
Mac OS
Использование заварки:
brew install openssl
export OPENSSL_ROOT=$(brew --prefix openssl)
# install bjam tool user specific configuration file to read OPENSSL_ROOT
# see https://boostorg.github.io/build/manual/develop/index.html
cp ./libs/beast/tools/user-config.jam $HOME
Убедитесь, что инструмент bjam (также называемый «b2») доступен в пути, который ваша оболочка использует для поиска исполняемых файлов. Проект Beast находится в «libs / beast» относительно каталога, содержащего суперпроект Boot. Для создания тестов, примеров и документации Beast используйте следующие команды:
export PATH=$PWD:$PATH
b2 -j2 libs/beast/test cxxstd=11 # bjam must be in your $PATH
b2 -j2 libs/beast/example cxxstd=11 # "-j2" means use two processors
b2 libs/beast/doc # Doxygen and Saxon are required for this
Дополнительные инструкции по настройке, использованию и созданию библиотек в суперпроекте можно найти в Boost Wiki.
Visual Studio
CMake можно использовать для создания очень красивого решения Visual Studio и набора файлов проекта Visual Studio с помощью следующих команд:
cd libs/beast
mkdir bin
cd bin
cmake .. # for 32-bit Windows builds, or
cmake -G"Visual Studio 15 2017 Win64" .. # for 64-bit Windows builds (VS2017)
Файлы в репозитории расположены так:
./
bin/ Create this to hold executables and project files
bin64/ Create this to hold 64-bit Windows executables and project files
doc/ Source code and scripts for the documentation
include/ Where the header files are located
example/ Self contained example programs
meta/ Metadata for Boost integration
test/ The unit tests for Beast
tools/ Scripts used for CI testing
Применение
Эти примеры представляют собой законченные автономные программы, которые вы можете создавать и запускать самостоятельно (они находятся в example
каталог).
https://www.boost.org/doc/libs/develop/libs/beast/doc/html/beast/quick_start.html
Лицензия
Распространяется по лицензии Boost Software, версия 1.0. (См. Сопроводительный файл LICENSE_1_0.txt или скопируйте на https://www.boost.org/LICENSE_1_0.txt)
Связаться с нами
Сообщайте о проблемах или вопросах здесь: https://github.com/boostorg/beast/issues
Содействие (нам нужна ваша помощь!)
Если вы хотите внести свой вклад в Beast и помочь нам поддерживать высокое качество, подумайте о выполнении проверки кода по активным запросам на вытягивание. Любая обратная связь от пользователей и заинтересованных сторон, даже простые вопросы о том, как все работает или почему они были сделаны определенным образом, имеют ценность и могут быть использованы для улучшения библиотеки. Проверка кода дает следующие преимущества:
- Выявить ошибки
- Корректура документации
- Настройте интерфейсы в соответствии с вариантами использования
- Упростить код
Вы можете просмотреть закрытые запросы на включение, чтобы получить представление о том, как выполняются проверки. Чтобы дать обзор кода, просто войдите в свою учетную запись GitHub, а затем добавьте комментарии к любым открытым запросам на вытягивание ниже, не стесняйтесь!
https://github.com/boostorg/beast/pulls
Вот несколько ресурсов, чтобы узнать больше об обзоре кода:
Beast любит обзоры кода и любые отзывы пользователей и заинтересованных сторон о своих интерфейсах. Даже если у вас просто есть вопросы, их ответы в обзоре кода или в проблемах предоставляют ценную информацию, которую можно использовать для улучшения библиотеки — не сомневайтесь, ни один вопрос не будет незначительным или несущественным!