Oat++ — это современная веб-платформа для C++. Он полностью укомплектован и содержит все необходимые компоненты для эффективного развития уровня производства. Он также легкий и требует небольшого объема памяти.
1.3.0-latest
. Следите за журналом изменений, чтобы узнать новости и функции версии 1.4.0
.
Рассмотрите возможность поддержки Oat++ через спонсорскую страницу GitHub.
oatpp-mysql от @Atarasin
oatpp-mariadb от @lilltiger
Начать
Сборка для Unix/Linux
Сборка для Windows
Примеры
Поддержание и развитие этого проекта требует значительного времени и ресурсов. Если вам нравится его использовать и вы хотите поддержать его дальнейшее развитие, рассмотрите возможность поддержки нас через спонсоров GitHub.
Стать спонсором на GitHub
Каждый вклад, большой или маленький, помогает нам продолжать улучшать и поддерживать проект. Спасибо за вашу поддержку!
Веб-сайт
Поддерживаемые платформы
Последние тесты: 5 миллионов веб-сокетов
Вклад в Oat++
Ярлыки:
Общий обзор Oat++. Получите краткий обзор функций Oat++.
Пример проекта — полный пример службы «CRUD» (UserService), созданной с помощью Oat++. REST + Swagger-UI + SQLite.
См. ApiController для получения более подробной информации.
ENDPOINT_INFO(getUserById) { info->summary = "Получить одного пользователя по идентификатору пользователя"; info->addResponse<Object<UserDto>>(Status::CODE_200, "application/json"); info->addResponse<Object<StatusDto>>(Status::CODE_404, "application/json"); info->addResponse<Object<StatusDto>>(Status::CODE_500, "application/json"); info->pathParams["userId"].description = "Идентификатор пользователя"; }ENDPOINT("GET", "users/{userId}", getUserById, PATH(Int32, userId)) { return createDtoResponse(Status::CODE_200, m_userService.getUserById(userId)); }
Дополнительную информацию см. в Oat++ ORM.
QUERY(createUser, "INSERT INTO пользователи (имя пользователя, адрес электронной почты, роль) ЗНАЧЕНИЯ (:имя пользователя, :email, :роль);", PARAM(oatpp::String, имя пользователя), PARAM(oatpp::String, адрес электронной почты), PARAM(oatpp::Enum<UserRoles>::AsString, роль))
Gitter — поговорите с разработчиками Oat++ и другими пользователями Oat++.
Твиттер — следите за Oat++ в Твиттере.
Reddit — следите за сабреддитом Oat++.
StackOverflow (новое) — задайте вопрос.
Служба REST — полный пример службы «CRUD» (UserService), созданной с помощью Oat++. REST + Swagger-UI + SQLite.
Клиент REST — пример проекта использования оболочки клиента, похожей на Retrofit (ApiClient), и ее работы.
Can Chat — полнофункциональный чат в комнатах для десятков тысяч пользователей. Клиент плюс Сервер.
WebSocket — коллекция примеров oatpp WebSocket.
YUV Websocket Stream — пример проекта по созданию потока изображений YUV с устройства V4L (iE веб-камеры) с использованием веб-сокетов.
SQLite — полный пример службы «CRUD». REST + Swagger-UI + SQLite.
PostgreSQL — пример службы сущностей производственного уровня, хранящей информацию в PostgreSQL. С Swagger-UI и профилями конфигурации.
MongoDB — пример проекта по работе с MongoDB с использованием модуля oatpp-mongo . Project — это веб-сервис с базовым CRUD и Swagger-UI.
Пример-IoT-Hue — пример проекта по созданию REST-API, совместимого с Philips Hue, который обнаруживается и управляется совместимыми с Hue устройствами умного дома, такими как Amazon Alexa или Google Echo.
Сервер потоковой передачи HTTP Live — пример проекта по созданию сервера потоковой передачи HLS с использованием асинхронного API Oat++.
YUV Websocket Stream — пример проекта по созданию потока изображений YUV с устройства V4L (iE веб-камеры) с использованием веб-сокетов.
TLS с Libressl — пример проекта, как настроить безопасное соединение и обслуживать его через HTTPS.
Интеграция Consul — пример проекта по использованию oatpp::consul::Client. Интеграция консула.
Микросервисы — пример проекта по созданию микросервисов с помощью Oat++ и пример консолидации этих микросервисов с использованием техники монолитизации.
Асинхронная служба — пример проекта по использованию асинхронного API для обработки большого количества одновременных подключений.
«Овес» — это что-то легкое, органическое и зеленое. Его можно легко приготовить и съесть, не прилагая усилий.
«++» намекает на то, что это «что-то» для C++.
Oat++ используется для самых разных целей: от создания REST API, которые работают на встроенных устройствах, до создания микросервисов и высоконагруженных облачных приложений.
Но большинство вариантов использования приходится на Интернет вещей и робототехнику .
Теоретически Oat++ можно легко портировать везде, где есть потоки и сетевой стек . Приложив сравнительно небольшие усилия, его можно портировать практически куда угодно, в зависимости от того, насколько сильно вы его разделите и каким будет окончательный двоичный размер.
Дополнительную информацию см. в разделе поддерживаемые платформы.
Около 1 МБ , в зависимости от версии C/C++ std-lib и oatpp.
Всегда выбирайте Simple API , где это возможно. Простой API более развит и делает код чище.
Async API предназначен для небольших конкретных задач, которые выполняются с высокими уровнями параллелизма, например:
Обслуживание загрузок файлов большому количеству одновременных пользователей (1 тыс. пользователей и более).
Потоковая передача большому количеству клиентов (1 тыс. и более).
Серверы чата Websocket.
Для всех остальных целей используйте простой API.