RESTBED - это всеобъемлющая и последовательная модель программирования для создания приложений, которые требуют бесшовной и безопасной связи над HTTP, с возможностью моделирования ряда бизнес -процессов, предназначенных для нацеливания на мобильные, планшетные, настольные и встроенные производственные среды.
Это сродни внедрению Nginx в собственную линейку продуктов. - Архитектор решений, технология Bellrock
| Особенность | Описание |
|---|---|
| Веб -вагоны | Полнодуплексные каналы связи над одним соединением TCP. |
| Серверные события | Серверные события позволяет эффективно потоковую потоковую передачу данных о событиях на основе сервера-EG, уведомления в реальном времени или обновления, сгенерированные на сервере. |
| Комета | Длинная модель опроса, чтобы разрешить длинные HTTP-запросы для передачи данных с сервера к клиенту. |
| SSL/TLS | Защитите связь с проволокой, позволяя передавать частные данные в Интернете. |
| Управление сеансом | Создайте пользовательскую HTTP Session Persistence и логику управления. |
| HTTP Pipeling | Техника, позволяющая отправлять несколько HTTP -запросов на одно соединение TCP, не ожидая соответствующих ответов. |
| Параметры пути | Аннотируйте URI с пользовательскими параметрами пути, такими как ключи от ресурсов, пересмотры и т. Д. |
| Параметры запроса | Автоматизированный анализ параметров запроса. |
| Заголовок фильтров | Фильтр входящих HTTP -запросов по заголовкам. |
| Регистрация | Настройте, как и где создаются записи журнала. |
| Многоаточные ресурсы | Дайте ресурсу несколько путей для улучшения читаемости. |
| Настраиваемые методы | Добавьте свои собственные методы HTTP. |
| Сжатие | Адаптируемость для решения любой формы сжатия GZIP, дефляции и т. Д. |
| Кодирование | Адаптивность для решения любой формы кодирования UTF-32, ASCII и т. Д. |
| Правила двигателя | Уменьшите сложность путем обработки входящих запросов с помощью читаемых единиц кода. |
| Http/https | Встроенные клиентские возможности с дополнительной проверкой сертификатов SSL. Устарел |
| IPv4/IPv6 | Версия интернет -протокола 4/6 Сетевая поддержка. |
| Архитектура | Асинхронная единая или многопоточная архитектура, способная решать проблему C10K. |
| Конвертеры | Встроенный путь, запрос и конверсию заголовков для первичных типов данных. |
| Аутентификация | Отдельная аутентификация уровня обслуживания и/или уровня ресурсов. |
| Обработка ошибок | Отдельная обработка ошибок на уровне сервиса и/или уровня ресурсов. |
| Привязка адреса | Свяжите HTTP и/или HTTPS -сервисы для отдельных IP -адресов. |
| Обработка сигнала | Захват ОС сгенерировал сигналы процесса. |
| Документация | Высококачественная документация, охватывающая архитектуру и API. |
| Согласие | Гибкость для решения проблемы соблюдения http 1.0/1.1+. |
| Зрелый | Безопасные, стабильные и тщательно протестированы с 2013 года. |
| Сообщество | Активный, яркий и энергичный сообщество с открытым исходным кодом. |
| Поддерживать | Коммерческая поддержка доступна в Corvusoft. |
# include < memory >
# include < cstdlib >
# include < restbed >
using namespace std ;
using namespace restbed ;
void post_method_handler ( const shared_ptr< Session > session )
{
const auto request = session-> get_request ( );
int content_length = request-> get_header ( " Content-Length " , 0 );
session-> fetch ( content_length, [ ]( const shared_ptr< Session > session, const Bytes & body )
{
fprintf ( stdout, " %.*s n " , ( int ) body. size ( ), body. data ( ) );
session-> close ( OK, " Hello, World! " , { { " Content-Length " , " 13 " } } );
} );
}
int main ( const int , const char ** )
{
auto resource = make_shared< Resource >( );
resource-> set_path ( " /resource " );
resource-> set_method_handler ( " POST " , post_method_handler );
auto settings = make_shared< Settings >( );
settings-> set_port ( 1984 );
settings-> set_default_header ( " Connection " , " close " );
Service service;
service. publish ( resource );
service. start ( settings );
return EXIT_SUCCESS;
}Больше подробных примеров можно найти здесь. Чтобы увидеть Restbed, используемый в гневе, пожалуйста, посетите Corvusoft's Project.
© 2013-2020 Corvusoft Limited, Великобритания. Все права защищены.
Структура отдыха является двойной лицензией; Смотрите лицензию для полной информации.
Пожалуйста, свяжитесь с [email protected], для поддержки и вариантов лицензирования, включая разработку программного обеспечения, тестирование, консультации по проектированию, обучение, наставничество и обзор кода.
Пожалуйста, отправьте все улучшения, предложения и дефекты через трекер выпуска; В качестве альтернативы задайте вопрос о Tagged #Restbed.
git clone --recursive https://github.com/corvusoft/restbed.git
mkdir restbed/build
cd restbed/build
cmake [-DBUILD_SSL = NO] [-DBUILD_TESTS = NO] ..
make install
make testТеперь вы найдете все необходимые компоненты, установленные в подпадке распределения.
| Вариант | Описание | По умолчанию |
|---|---|---|
| Build_ssl | Включить поддержку SSL/TLS. | Включено |
| Build_ipc | Включить розетки Unix Domain. | Неполноценный |
| Build_tests | Строите проектные тесты. | Включено |
| Build_devel_package | Установите заголовки в cmake_install_prefix. | Включено |
| BUILD_SHARED_LIBRARY | Создайте общую сборку отдыха. | Включено |
| Build_static_library | Производить статическую сборку отдыха. | Включено |
Предварительные условия: Visual Studio 2022, Cmake, Git, Perl.
Использование командной строки x64 Native Tools начинается с того, что при необходимости строится OpenSSL.
git clone --recursive https://github.com/corvusoft/restbed.git
cd restbeddependencyopenssl
perl Configure [no-]shared
nmake
nmake testЕсли вы выбрали для использования по умолчанию Build (Shared), вам необходимо включить путь установки в вашу среду.
set PATH = restbeddependencyopenssl; %PATH%Если вы выбрали для использования статической сборки OpenSSL (без проживания), вам необходимо включить дополнительные зависимости при связывании кода вашего приложения; Смотрите проект OpenSSL для более подробной информации.
target_link_libraries( my_microservice restbed-static.lib ws2_32.lib advapi32.lib crypt32.lib gdi32.lib user32.lib )Теперь перейдите со следующими инструкциями по сбору для отдыха.
mkdir restbedbuild
cd restbedbuild
cmake -G " Visual Studio 17 2022 " [-DBUILD_SSL=NO] [-DBUILD_TESTS=NO] ..
cmake --build . --target ALL_BUILD --config Release
ctestДля Microsoft Visual Studio 14 2015 года и более подробную информацию см. Функцию № 17.
Вы можете скачать и установить Restbed, используя VCPKG Devingdency Manager:
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
./vcpkg install restbedПорт -порт в VCPKG обновляется членами команды Microsoft и участниками сообщества. Если версия установлена на устаре, пожалуйста, создайте проблему или запрос на вытягивание в репозитории VCPKG.
Эта кодовая база предназначена для того, чтобы быть как можно более документированием. Мы поставили много примеров и тестирования, чтобы помочь разработчикам.
Вы можете найти последний дизайн и документацию API здесь.
| Ресурс | Требование |
|---|---|
| Компилятор | C ++ 14 соответствует или выше |
| ОС | BSD, Linux, Mac OSX, Windows, Raspbian |
| Веха | Особенность | Статус |
|---|---|---|
| 0,0 | Асинхронная служба HTTP | полный |
| 1.0 | Http 1.0 Соответствие | полный |
| 2.0 | Http 1.1 Соответствие | полный |
| 2.5 | Защитный слой сокета | полный |
| 2.5 | Одновременные сетевые порты (http/https) | полный |
| 3.0 | Правила двигателя | полный |
| 3.5 | Расписание задач на сервисной пробежке | полный |
| 3.5 | Многопользовательская возможность обслуживания | полный |
| 3.5 | Связывать службу с конкретным адресом | полный |
| 3.5 | Управление сеансом | полный |
| 4.0 | Http client | полный |
| 4.0 | Обработка сигнала | полный |
| 4.5 | Документация API | полный |
| 4.5 | Веб -розетки | полный |
| 5.0 | Сертификаты SSL на стороне клиента | разработка |
| 5.0 | Кэширование ресурсов | разработка |
| 5.0 | Модификации времени выполнения | разработка |
| 5.0 | Http 2 Соответствие | разработка |
| 5.0 | Рефактор, уменьшить, повторно использовать | активный |
| Метод | Описание |
|---|---|
| Твитнуть нам свои вопросы и запросы на функции. | |
| [email protected] | Поддержка связанных запросов. |
| [email protected] | Связанные с продажей запросы. |