Crow
Oat++
Our great sponsors
Crow | Oat++ | |
---|---|---|
35 | 21 | |
2,662 | 7,360 | |
6.2% | 1.9% | |
8.2 | 8.7 | |
10 days ago | about 2 months ago | |
C++ | C++ | |
GNU General Public License v3.0 or later | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Crow
-
Experience using crow as web server
I'm investigating using C++ to build a REST server, and would love to know of people's experiences with Crow-- or whether they would recommend something else as a "medium-level" abstraction C++ web server. As background, I started off experimenting with Python/FastAPI, which is great, but there is too much friction to translate from pybind11-exported C++ objects to the format that FastAPI expects, and, of course, there are inherent performance limitations using Python, which could impact scaling up if the project were to be successful.
-
REST APIs using C++. (Is this even done much?)
How about Crow?
-
What library/framework to use for writing a Web server?
https://github.com/CrowCpp/Crow is super easy to use
-
Transport agnostic Websocket library
I recommend Crow, it's a web framework that supports HTTP and Websockets. It's a bit larger than being only there to just let you compose or decode a packet. But I'm pretty sure everything you mentioned is there already :)
-
What's next after learncpp.com?
It's also very useful to get to grips with using some popular libraries. Some might be ones that you'll find yourself using everywhere (e.g. fmt, spdlog, catch2), and some that have more specific usage, but are good to try out and explore what C++ can do in a ridiculously easy-to-use manner (e.g. crow, Dear ImGui). Make some toy projects that use some of these and you'll learn a lot.
-
Can I use C++ in the backend ?? Any frameworks there ??
I've been working on Crow for quite a while now, it's a pretty cool framework IMO.
-
Have there been any attempts to build a REST API service on top of either Boost.asio or Boost.beast?
You can also consider https://crowcpp.org/.
- Networking TS: first impression and questions;
-
A year and a half ago I picked up an abandoned C++ web Framework, Today we released v1.0
cmake_minimum_required (VERSION 3.11) project(crow_test LANGUAGES CXX VERSION 0.0.1 ) add_executable(crow_test) set_property(TARGET crow_test PROPERTY CXX_STANDARD 17) file(GLOB sources src/*.cpp src/*.h) target_sources(crow_test PRIVATE ${sources} ) find_package(Threads REQUIRED) # use static libs for all projects SET(BUILD_SHARED_LIBS OFF CACHE BOOL "Use static libs") # --- Fetch CROW -------------------------------------------------------------- include(FetchContent) set(FETCHCONTENT_UPDATES_DISCONNECTED TRUE) FetchContent_Declare(crow GIT_REPOSITORY https://github.com/CrowCpp/Crow GIT_TAG v1.0 ) FetchContent_GetProperties(crow) if(NOT crow_POPULATED) FetchContent_Populate(crow) add_subdirectory(${crow_SOURCE_DIR} ${crow_BINARY_DIR} EXCLUDE_FROM_ALL) endif() # ------------------------------------------------------------------------------ target_link_libraries(crow_test PRIVATE Crow::Crow ) install(TARGETS crow_test RUNTIME DESTINATION .) install(DIRECTORY static/ DESTINATION static) set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY OFF) set(CPACK_OUTPUT_FILE_PREFIX "") set(CPACK_GENERATOR "ZIP" CACHE STRING "Zip Generator") include(CPack)
Today we released version 1.0, which aside from being the first non pre-release version, improves considerably on all parts of the framework. The changes include Blueprints (similar to python flask), a new HTTP Parser, CMake support, easily allowing multiple source files in downstream projects, C++20 support, and many more features and fixes. full changelog here.
Oat++
-
Experience using crow as web server
I looked at oatpp and drogon, which are both great, but feel too high-level for my purposes. I tried drogon and got something working, but it feels like too much for my requirements, as in particular I'd like to slot in my choice of Json and message-body handling. C.f. the simple approach in Crow, which I easily understand and build on.
-
REST APIs using C++. (Is this even done much?)
Lots of other options have been mentioned, but I'll throw Oat++ into the mix. I used it for this purpose and it was reasonably painless.
-
Server with oat++. Installation. CmakeLists.txt
cd "some/temp/path/for/repositories" git clone https://github.com/oatpp/oatpp.git cd oatpp mkdir build && cd build cmake .. (sudo) make install
-
How to use C++ as the backend for web dev?
Maybe use something like https://oatpp.io to create a REST API: C++ in the backend with this library to create a REST server, and the JavaScript/TypeScript frontend to ask for the information.
-
making a web server in c++?
I've used OATPP ( https://github.com/oatpp/oatpp ) which worked nicely for setting up simple rest interfaces. Supports things like swagger & websockets out of the box. It's also on Conan which is nice if you use cmake. I can't speak to it's performance but it has about a 1mb binary size footprint.
- Not mine but the pain of c++
- Modern C++ Web API (Back-End Development)
-
C or C++ as web app backend?
Oatpp
-
Web services in C++
try https://oatpp.io . Fast and easy way to create web apps in c++ .
-
cpprestsdk in maintenance mode
If you need an embedded C++ HTTP server then there are plenty of libraries/frameworks (in random order): Crow, RESTinio, Boost.Beast, cpp-httplib, http_backend, Pistache, RestBed, served, proxygen, Simple-Web-Server, drogon, oat++.
What are some alternatives?
drogon - Drogon: A C++14/17 based HTTP web application framework running on Linux/macOS/Unix/Windows [Moved to: https://github.com/drogonframework/drogon]
Crow - Crow is very fast and easy to use C++ micro web framework (inspired by Python Flask)
Pistache - A high-performance REST toolkit written in C++
Boost.Asio - Asio C++ Library
cpp-httplib - A C++ header-only HTTP/HTTPS server and client library
C++ REST SDK - The C++ REST SDK is a Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design. This project aims to help C++ developers connect to and interact with services.
Wt - Wt, C++ Web Toolkit
Boost.Beast - HTTP and WebSocket built on Boost.Asio in C++11
drogon - Drogon: A C++14/17/20 based HTTP web application framework running on Linux/macOS/Unix/Windows
TreeFrog Framework - TreeFrog Framework : High-speed C++ MVC Framework for Web Application
Restbed - Corvusoft's Restbed framework brings asynchronous RESTful functionality to C++14 applications.