{"id":15105167,"url":"https://github.com/thavarshan/ember","last_synced_at":"2026-02-11T16:31:10.710Z","repository":{"id":249463128,"uuid":"831558557","full_name":"Thavarshan/ember","owner":"Thavarshan","description":"🔥 A lightweight C++ web framework for experimentation and learning.","archived":false,"fork":false,"pushed_at":"2024-07-21T20:54:14.000Z","size":713,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-05T12:42:13.513Z","etag":null,"topics":["cpp","cpp17","ember","framework","library","simple","web"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Thavarshan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-07-20T23:20:55.000Z","updated_at":"2024-07-21T20:54:18.000Z","dependencies_parsed_at":"2024-09-16T04:00:39.093Z","dependency_job_id":null,"html_url":"https://github.com/Thavarshan/ember","commit_stats":{"total_commits":25,"total_committers":1,"mean_commits":25.0,"dds":0.0,"last_synced_commit":"1a71f79a3c89d91ce607e77052e27363a4b60c40"},"previous_names":["thavarshan/ember"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Thavarshan/ember","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thavarshan%2Fember","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thavarshan%2Fember/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thavarshan%2Fember/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thavarshan%2Fember/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Thavarshan","download_url":"https://codeload.github.com/Thavarshan/ember/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thavarshan%2Fember/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269832882,"owners_count":24482330,"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","status":"online","status_checked_at":"2025-08-11T02:00:10.019Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["cpp","cpp17","ember","framework","library","simple","web"],"created_at":"2024-09-25T20:21:35.605Z","updated_at":"2026-02-11T16:31:10.683Z","avatar_url":"https://github.com/Thavarshan.png","language":"C++","readme":"# Ember\n\n🔥 **Ember** is a simple C++ web framework designed for learning and experimentation. The primary goal of this project is to understand how C++ can be used in web application development, following the structure and principles inspired by the Laravel framework.\n\n## Project Structure\n\n```\nember/\n├── CMakeLists.txt\n├── LICENSE\n├── README.md\n├── .clang-format\n├── .editorconfig\n├── .gitignore\n├── .gitmodules\n├── build/                  # Directory for build files\n├── googletest/             # Directory for Google Test framework\n├── include/                # Header files\n│   ├── app.hpp\n│   ├── collection.hpp\n│   ├── connection.hpp\n│   ├── kernel.hpp\n│   ├── model.hpp\n│   ├── query.hpp\n│   ├── request.hpp\n│   ├── response.hpp\n│   ├── route.hpp\n│   └── router.hpp\n├── lib/                    # Library files\n├── scripts/                # Scripts for automation\n│   └── build.sh\n├── src/                    # Source files\n│   ├── core/\n│   │   ├── app.cpp\n│   │   └── kernel.cpp\n│   ├── db/\n│   │   ├── connection.cpp\n│   │   ├── model.cpp\n│   │   └── query.cpp\n│   ├── http/\n│   │   ├── request.cpp\n│   │   └── response.cpp\n│   ├── router/\n│   │   ├── collection.cpp\n│   │   ├── route.cpp\n│   │   └── router.cpp\n│   └── main.cpp\n├── tests/                  # Test files\n│   ├── core/\n│   │   ├── app_test.cpp\n│   │   └── kernel_test.cpp\n│   ├── db/\n│   │   ├── connection_test.cpp\n│   │   ├── model_test.cpp\n│   │   └── query_test.cpp\n│   ├── http/\n│   │   ├── request_test.cpp\n│   │   └── response_test.cpp\n│   └── router/\n│       ├── collection_test.cpp\n│       ├── route_test.cpp\n│       └── router_test.cpp\n│   └── main.cpp\n└── .vscode/                # VSCode configuration files\n```\n\n## Features\n\n- **HTTP Request Handling:** Classes to handle HTTP requests.\n- **HTTP Response Handling:** Classes to handle HTTP responses.\n- **Object-Oriented Design:** Follows OOP principles similar to Laravel.\n- **Google Test Integration:** Unit tests using Google Test framework.\n- **CMake Build System:** Uses CMake for building the project.\n\n## Requirements\n\n- **C++17 or higher**\n- **CMake 3.10 or higher**\n- **SQLite3**\n- **Google Test**\n\n## Getting Started\n\n### Clone the Repository\n\n```sh\ngit clone https://github.com/Thavarshan/ember.git\ncd ember\n```\n\n### Build and Test the Project\n\nYou can use the `build.sh` script to clean, configure, build, and test the project.\n\n```sh\n./build.sh\n```\n\nThis script will:\n\n1. Clean up old build files.\n2. Configure the project with CMake.\n3. Build the project.\n4. Run all tests and show the results.\n\n### Directory Structure\n\n- **`include/`:** Contains header files for the project.\n- **`src/`:** Contains source files for the project.\n- **`tests/`:** Contains test files for the project.\n- **`googletest/`:** Directory for Google Test framework.\n- **`build/`:** Directory where build files will be generated.\n- **`cleanup.sh`:** Script to clean up build files.\n- **`build.sh`:** Script to build and test the project.\n\n## Learning Objectives\n\nThe main purpose of this project is to provide a learning platform for C++ web application development. By working on this project, you will learn:\n\n- How to structure a C++ project for web development.\n- How to use CMake for managing builds.\n- How to implement HTTP request and response handling.\n- How to write unit tests with Google Test.\n- How to follow object-oriented design principles in C++.\n\n## Contributing\n\nContributions are welcome! Please fork the repository and submit a pull request.\n\n## License\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthavarshan%2Fember","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthavarshan%2Fember","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthavarshan%2Fember/lists"}