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 8f1c11ae53 Merge pull request #330 from oatpp/update_readme | 3 ani în urmă | |
---|---|---|
changelog | 3 ani în urmă | |
cmake | 5 ani în urmă | |
src | 3 ani în urmă | |
test | 3 ani în urmă | |
utility | 5 ani în urmă | |
.gitignore | 3 ani în urmă | |
CMakeLists.txt | 4 ani în urmă | |
CODE_OF_CONDUCT.md | 5 ani în urmă | |
CONTRIBUTING.md | 5 ani în urmă | |
LICENSE | 6 ani în urmă | |
README.md | 3 ani în urmă | |
azure-pipelines.yml | 4 ani în urmă | |
lgtm.yml | 5 ani în urmă |
News
1.2.0
version is now released. See changelog for details.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.