{"id":18248481,"url":"https://github.com/ngocdo1987/pet-cpp-starter","last_synced_at":"2025-04-08T19:52:20.441Z","repository":{"id":251507083,"uuid":"837591015","full_name":"ngocdo1987/pet-cpp-starter","owner":"ngocdo1987","description":"C++ starter tutorials","archived":false,"fork":false,"pushed_at":"2025-01-30T17:36:06.000Z","size":63,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-14T15:44:20.996Z","etag":null,"topics":["cplusplus","cpp","cpp-tutorial","cpp-tutorials"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ngocdo1987.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-03T12:28:54.000Z","updated_at":"2025-01-30T17:36:09.000Z","dependencies_parsed_at":"2024-08-07T17:09:11.156Z","dependency_job_id":"6fe91ded-d68b-49e4-81f2-cf574024775b","html_url":"https://github.com/ngocdo1987/pet-cpp-starter","commit_stats":null,"previous_names":["ngocdo1987/pet-cpp-starter"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngocdo1987%2Fpet-cpp-starter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngocdo1987%2Fpet-cpp-starter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngocdo1987%2Fpet-cpp-starter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngocdo1987%2Fpet-cpp-starter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ngocdo1987","download_url":"https://codeload.github.com/ngocdo1987/pet-cpp-starter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247918929,"owners_count":21018043,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cplusplus","cpp","cpp-tutorial","cpp-tutorials"],"created_at":"2024-11-05T09:37:21.647Z","updated_at":"2025-04-08T19:52:20.413Z","avatar_url":"https://github.com/ngocdo1987.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"## How to compile C++\n```bash\ng++ helloworld.cpp -o build/helloworld\n./build/helloworld\n```\n- How to call on a function found on another file? =\u003e https://stackoverflow.com/questions/15891781/how-to-call-on-a-function-found-on-another-file\n- How to install C++20 on Ubuntu =\u003e https://gasparri.org/2020/07/30/installing-c17-and-c20-on-ubuntu-and-amazon-linux/\n```bash\nsudo add-apt-repository ppa:ubuntu-toolchain-r/test\nsudo apt-get update\nsudo apt install gcc-10 gcc-10-base gcc-10-doc g++-10\nsudo apt install libstdc++-10-dev libstdc++-10-doc\n```\n## Exercises\n- https://www.learncpp.com/\n- https://www.w3resource.com/cpp-exercises/\n- https://github.com/codecrafters-io/build-your-own-x\n## jwt-cpp\n- https://github.com/Thalhammer/jwt-cpp\n```bash\ngit clone https://github.com/Thalhammer/jwt-cpp.git\ncd jwt-cpp\nmkdir build\ncd build\ncmake .. \u0026\u0026 make\nsudo make install\n```\n## cpp-httplib\nInstall (after install =\u003e /usr/local/include/httplib.h) \n```bash\ngit clone git@github.com:yhirose/cpp-httplib.git\ncd cpp-httplib\nmkdir -p build\ncd build\ncmake -DCMAKE_BUILD_TYPE=Release ..\nsudo cmake --build . --target install\n```\nCompile\n```bash\ng++ server.cpp -o build/server -lpthread\n```\n* undefined reference to `pthread_create'\nhttps://stackoverflow.com/questions/17264984/undefined-reference-to-pthread-\n## Drogon\nDrogon: A C++14/17/20 based HTTP web application framework running on Linux/macOS/Unix/Windows\n```bash\nsudo apt install git\nsudo apt install gcc\nsudo apt install g++\nsudo apt install cmake\nsudo apt install libjsoncpp-dev\nsudo apt install uuid-dev\nsudo apt install zlib1g-dev\nsudo apt install openssl\nsudo apt install libssl-dev\ngit clone https://github.com/drogonframework/drogon\ncd drogon\ngit submodule update --init\nmkdir build\ncd build\ncmake ..\nmake \u0026\u0026 sudo make install\n```\n## Cinatra\nCinatra is a high-performance, easy-to-use http framework developed in Modern C++ (C++20) with the goal of making it easy and quick to develop web applications using the C++ programming language: https://github.com/qicosmos/cinatra\n## oatpp\n🌱Light and powerful C++ web framework for highly scalable and resource-efficient web application. It's zero-dependency and easy-portable.\n```bash\ngit clone git@github.com:oatpp/oatpp.git\ncd oatpp\nmkdir build \u0026\u0026 cd build\ncmake ..\nsudo make install\n```\n- A complete example of a \"CRUD\" service (UserService) built with Oat++. =\u003e https://github.com/oatpp/example-crud\n- OpenApi 3.0.0 docs + Swagger UI for oatpp services =\u003e https://github.com/oatpp/oatpp-swagger\n## restc-cpp\nModern C++ REST Client library =\u003e https://github.com/jgaa/restc-cpp\n## ngrest\nFast and easy C++ RESTful WebServices framework =\u003e https://github.com/loentar/ngrest\n## restinio\nCross-platform, efficient, customizable, and robust asynchronous HTTP(S)/WebSocket server C++ library with the right balance between performance and ease of use\n- https://github.com/Stiffstream/restinio\n- https://stiffstream.com/en/docs/restinio/0.7/\n## JSON\nJSON for Modern C++\n- https://github.com/nlohmann/json\n- Copy \"single_include/nlohmann\" folder to \"/user/local/include\"\n- C/C++ JSON parser/generator benchmark =\u003e https://github.com/miloyip/nativejson-benchmark#parsing-time\n## rapidjson\nA fast JSON parser/generator for C++ with both SAX/DOM style API\n- Install =\u003e RapidJSON is a header-only C++ library. Just copy the include/rapidjson folder to system or project's include path.\n- https://github.com/Tencent/rapidjson\n- https://rapidjson.org/\n## HTTPRequest\nSingle-header C++ HTTP request class\n- https://github.com/elnormous/HTTPRequest\n## HTML -\u003e PDF\n- https://wkhtmltopdf.org/\n- https://github.com/wkhtmltopdf/wkhtmltopdf\n## Nginx link function\nIt is a NGINX module that provides dynamic linking to your application in server context and call the function of your application in location directive\n- https://github.com/Taymindis/nginx-link-function\n- https://nginx-link-function.github.io/\n## C++ chat app\nA chat room application developed in C++ using the concepts of multi-threading and socket programming.\n- https://github.com/cjchirag7/chatroom-cpp\n## POCO\nThe POCO C++ Libraries are powerful cross-platform C++ libraries for building network- and internet-based applications that run on desktop, server, mobile, IoT, and embedded systems.\n- https://github.com/pocoproject/poco\n- https://pocoproject.org/\n## Mongoose\nA Premium Embedded Web Server for electronic devices in a single file\n- https://mongoose.ws/\n- https://github.com/cesanta/mongoose\n## Emscripten\nEmscripten is a complete compiler toolchain to WebAssembly, using LLVM, with a special focus on speed, size, and the Web platform.\n- PORTING: Compile your existing projects written in C or C++ — or any language that uses LLVM — to browsers, Node.js, or wasm runtimes.\n- APIs: Emscripten converts OpenGL into WebGL, and has support for familiar APIs like SDL, pthreads, and POSIX, as well as Web APIs and JavaScript.\n- FAST: Thanks to the combination of LLVM, Emscripten, Binaryen, and WebAssembly, the output is compact and runs at near-native speed.\nURLs\n- https://github.com/emscripten-core/emscripten\n- https://emscripten.org/\n- https://www.codeproject.com/Articles/5250727/Introduction-to-Web-Assembly-with-C-Cplusplus\n## Good repo based on Drogon C++\n- Gaboot E-Commerce Backend Server: https://github.com/skript023/Gaboot\n- Libre Blog - A blog system powered by Drogon.\n- -\u003e Libre Blog Backend: https://github.com/fansuregrin/libre-blog\n- -\u003e Libre Blog Frontend: https://github.com/fansuregrin/libre-blog-frontend\n## Another good repos\n- Fast and simple blog system based on SQLite 3 and BBCode written in C++: https://github.com/vldr/LightBlog\n- Simple Content Management System by Gradeyard: https://gradeyard.com/index.cgi?page=cmsExample\n- C++ Ecommerce CLI system: https://github.com/AtharIbrahim/ECommerce-Cpp\n## C++ Web Programming\n- https://www.tutorialspoint.com/cplusplus/cpp_web_programming.htm\n## Redis\n- https://github.com/sewenew/redis-plus-plus\n- https://github.com/tdv/redis-cpp\n## ElasticSearch\n- https://github.com/seznam/elasticlient\n## Kafka\n- https://github.com/morganstanley/modern-cpp-kafka\n- https://github.com/confluentinc/librdkafka\n## RabbitMQ\n- https://github.com/CopernicaMarketingSoftware/AMQP-CPP\n## C++ Template Engine for HTML/CSS/JavaScript\n- https://github.com/melpon/ginger\n- https://github.com/pantor/inja\n- https://github.com/jinja2cpp/Jinja2Cpp\n- https://github.com/qicosmos/render\nI use C++ to develop web services. The stack I use (extracted from my conanfile):\nfmt/9.0.0\nspdlog/1.10.0\ncpp-httplib/0.11.2\nchaiscript/6.1.0\nopenssl/3.0.5\ncli11/2.2.0\nnlohmann_json/3.11.1\n## C++ Static Site Generators\n- Nift: https://github.com/nifty-site-manager/nsm\n- blogcpp: https://code.rosaelefanten.org/blogcpp/dir?type=flat\u0026ci=trunk\n- Mizi: https://github.com/AbstractXan/Mizi\n- sudo_site: https://github.com/sharadcodes/sudo_site\n- Bake: https://github.com/felipetavares/bake\n- The Great Site Generator: https://github.com/drew5494/the-great-site-generator\n## TinyORM\nModern C++ ORM library\n- https://github.com/silverqx/TinyORM\n## pugixml\npugixml is a light-weight XML processing library that can also be effectively used for HTML parsing in web scraping projects.\n- https://github.com/zeux/pugixml\n## Headless Browser\nChromium Embedded Framework (CEF). A simple framework for embedding Chromium-based browsers in other applications.\n- https://github.com/chromiumembedded/cef\n## Scrape\n- Scrape a Dynamic Website with C++\nhttps://scrapingant.com/blog/scrape-dynamic-website-with-c-plus-plus\n## Develop MySQL C++ Applications with Advanced Integration\nhttps://app.studyraid.com/en/courses/12428/develop-mysql-c-applications-with-advanced-integration","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fngocdo1987%2Fpet-cpp-starter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fngocdo1987%2Fpet-cpp-starter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fngocdo1987%2Fpet-cpp-starter/lists"}