Oat++ is a modern Web Framework for C++. It's fully loaded and contains all necessary components for effective production level development. It's also light and has a small memory footprint.
Leonid Stryzhevskyi f67440cd5e Merge pull request #538 from p4czyk/docs/typo-in-dto | 2 lat temu | |
---|---|---|
.github | 2 lat temu | |
changelog | 2 lat temu | |
cmake | 2 lat temu | |
fuzzers | 2 lat temu | |
src | 2 lat temu | |
test | 2 lat temu | |
utility | 5 lat temu | |
.gitignore | 3 lat temu | |
CMakeLists.txt | 2 lat temu | |
CODE_OF_CONDUCT.md | 5 lat temu | |
CONTRIBUTING.md | 5 lat temu | |
LICENSE | 6 lat temu | |
README.md | 2 lat temu | |
azure-pipelines.yml | 2 lat temu | |
cpack.cmake | 2 lat temu | |
lgtm.yml | 5 lat temu |
News
1.3.0
. Now it's better than ever! See the changelog for details. :tada:Oat++ is a modern Web Framework for C++. It's fully loaded and contains all necessary components for effective production level development. It's also light and has a small memory footprint.
Start
About
Join Our Community
Shortcuts:
See ApiController for more details.
ENDPOINT_INFO(getUserById) {
info->summary = "Get one User by userId";
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 = "User Identifier";
}
ENDPOINT("GET", "users/{userId}", getUserById,
PATH(Int32, userId))
{
return createDtoResponse(Status::CODE_200, m_userService.getUserById(userId));
}
See Oat++ ORM for more details.
QUERY(createUser,
"INSERT INTO users (username, email, role) VALUES (:username, :email, :role);",
PARAM(oatpp::String, username),
PARAM(oatpp::String, email),
PARAM(oatpp::Enum<UserRoles>::AsString, role))
Oat++ is used for many different purposes, from building REST APIs that run on embedded devices to building microservices and highly-loaded cloud applications.
But the majority of use cases appears to be in IoT and Robotics.
Theoretically, Oat++ can be easily ported everywhere where you have threads and network stack. With an additional comparably small effort, it can be ported almost everywhere depending on how much you strip it and what would be the final binary size.
See supported platforms for additional info.
About 1Mb, depending on C/C++ std-lib and oatpp version.
Always choose Simple API wherever possible. Simple API is more developed and makes the code cleaner.
Async API is designed for small, specific tasks that run at high concurrency levels ex.:
For all other purposes use simple API.