{"id":43003833,"url":"https://github.com/verma-kartik/trantor","last_synced_at":"2026-01-31T04:33:58.959Z","repository":{"id":179464466,"uuid":"663507995","full_name":"verma-kartik/trantor","owner":"verma-kartik","description":"Trantor - Object Relational Mapper using Modern C++ ","archived":false,"fork":false,"pushed_at":"2025-09-03T17:30:42.000Z","size":436,"stargazers_count":0,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-03T19:26:53.436Z","etag":null,"topics":["cmake","cplusplus-20","cpp","gtest","header-only","metaprogramming","sql","sqlite3","template"],"latest_commit_sha":null,"homepage":"https://verma-kartik.github.io/trantor/html/index.html","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/verma-kartik.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-07-07T13:05:28.000Z","updated_at":"2025-09-03T17:13:40.000Z","dependencies_parsed_at":null,"dependency_job_id":"d5cfef54-f80a-49f1-9bb3-ea50fba9dd45","html_url":"https://github.com/verma-kartik/trantor","commit_stats":null,"previous_names":["verma-kartik/trantor"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/verma-kartik/trantor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/verma-kartik%2Ftrantor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/verma-kartik%2Ftrantor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/verma-kartik%2Ftrantor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/verma-kartik%2Ftrantor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/verma-kartik","download_url":"https://codeload.github.com/verma-kartik/trantor/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/verma-kartik%2Ftrantor/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28929701,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-31T04:05:25.756Z","status":"ssl_error","status_checked_at":"2026-01-31T04:02:35.005Z","response_time":128,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["cmake","cplusplus-20","cpp","gtest","header-only","metaprogramming","sql","sqlite3","template"],"created_at":"2026-01-31T04:33:57.387Z","updated_at":"2026-01-31T04:33:58.942Z","avatar_url":"https://github.com/verma-kartik.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OrmCpp - Modern C++20 ORM Library\n\nA modern Object-Relational Mapping (ORM) library for C++20, designed to provide type-safe database operations with compile-time validation.\n\n## Features\n\n- **C++20 Modern Features**: Leverages concepts, constexpr if, and other modern C++ features\n- **Type Safety**: Compile-time type checking for database operations\n- **Header-Only Design**: Easy integration into existing projects (planned)\n- **Cross-Platform**: Works on Linux, macOS, and Windows\n- **Comprehensive Testing**: Google Test integration for reliable development\n\n## Project Structure\n\n```\normcpp/\n├── CMakeLists.txt          # Main CMake configuration\n├── README.md              # This file\n├── src/                   # Source files\n│   └── main.cpp          # Example/demo application\n├── include/               # Header files\n│   └── ormcpp/           # Library headers (to be added)\n├── tests/                 # Test files\n│   ├── CMakeLists.txt    # Test configuration\n│   └── basic_test.cpp    # Basic tests\n├── docs/                  # Documentation\n├── examples/              # Usage examples\n└── build/                 # Build directory (generated)\n```\n\n## Prerequisites\n\n- **CMake** 3.20 or higher\n- **GCC 11+** or **Clang 12+** (C++20 support required)\n- **Git** (for dependency management)\n- **Internet connection** (for downloading Google Test)\n\n## Getting Started\n\n### 1. Clone the Repository\n\n```bash\ngit clone \u003cyour-repo-url\u003e\ncd ormcpp\n```\n\n### 2. Build the Project\n\n```bash\n# Create build directory\nmkdir -p build\ncd build\n\n# Configure with CMake\ncmake ..\n\n# Build the project\nmake\n\n# Or use cmake to build\ncmake --build .\n```\n\n### 3. Run the Application\n\n```bash\n# Run the main executable\n./ormcpp\n```\n\n### 4. Run Tests\n\n```bash\n# Run tests directly\n./tests/ormcpp_tests\n\n# Or use CTest for detailed output\nctest --verbose\n\n# Run specific test\nctest -R BasicTest\n```\n\n## Build Options\n\n### Debug Build (Default)\n```bash\ncmake -DCMAKE_BUILD_TYPE=Debug ..\nmake\n```\n\n### Release Build\n```bash\ncmake -DCMAKE_BUILD_TYPE=Release ..\nmake\n```\n\n### Build with Specific Compiler\n```bash\n# Using GCC\ncmake -DCMAKE_CXX_COMPILER=g++ ..\n\n# Using Clang\ncmake -DCMAKE_CXX_COMPILER=clang++ ..\n```\n\n## Development Workflow\n\n### Adding New Features\n\n1. **Create header files** in `include/ormcpp/`\n2. **Create source files** in `src/` (if not header-only)\n3. **Add tests** in `tests/`\n4. **Update CMakeLists.txt** if needed\n5. **Build and test**\n\n### Testing\n\nThe project uses Google Test for unit testing:\n\n```bash\n# Add new test file in tests/\ntouch tests/my_new_test.cpp\n\n# CMake will automatically detect and compile new test files\ncd build \u0026\u0026 make\n\n# Run all tests\n./tests/ormcpp_tests\n```\n\n### Example Test Structure\n\n```cpp\n#include \u003cgtest/gtest.h\u003e\n#include \"ormcpp/your_header.hpp\"\n\nTEST(YourTestSuite, TestName) {\n    // Your test code\n    EXPECT_EQ(expected, actual);\n}\n```\n\n## C++20 Features Used\n\nThis project leverages modern C++20 features:\n\n- **Concepts**: Type constraints for template parameters\n- **constexpr if**: Compile-time conditional compilation\n- **Template improvements**: Enhanced template argument deduction\n- **Modules**: (Planned for future versions)\n\n### Example Usage (Planned)\n\n```cpp\n#include \u003cormcpp/orm.hpp\u003e\n\n// Define your entity\nclass User : public ormcpp::Entity {\npublic:\n    int id;\n    std::string name;\n    std::string email;\n    \n    std::string getTableName() const override {\n        return users;\n    }\n};\n\n// Use the ORM\nint main() {\n    ormcpp::Repository\u003cUser\u003e userRepo(sqlite:///users.db);\n    \n    // Find users\n    auto users = userRepo.findAll();\n    \n    // Find by condition\n    auto admins = userRepo.findBy(role, admin);\n    \n    return 0;\n}\n```\n\n## Compiler Support\n\n| Compiler | Minimum Version | Status |\n|----------|-----------------|--------|\n| GCC      | 11.0           | ✅ Tested |\n| Clang    | 12.0           | ✅ Tested |\n| MSVC     | 19.29          | 🟡 Should work |\n\n## CMake Targets\n\n| Target        | Description                    |\n|---------------|--------------------------------|\n| `ormcpp`     | Main executable               |\n| `ormcpp_lib` | Library (static/interface)    |\n| `ormcpp_tests` | Test executable             |\n| `run_tests`  | Custom target to run tests   |\n\n## Configuration Summary\n\nThe build system provides a configuration summary:\n\n```\n-- ormcpp Configuration Summary:\n--   Version: 1.0.0\n--   Build type: Debug\n--   C++ standard: 20\n--   Compiler: GNU\n```\n\n## Troubleshooting\n\n### Common Issues\n\n1. **CMake version too old**:\n   - Update CMake to 3.20 or higher\n\n2. **C++20 not supported**:\n   - Update compiler (GCC 11+, Clang 12+)\n\n3. **Google Test download fails**:\n   - Check internet connection\n   - May need to configure proxy if behind corporate firewall\n\n4. **Build fails with template errors**:\n   - Ensure you're using a C++20 compatible compiler\n   - Check that `-std=c++20` is being used\n\n### Debugging Build Issues\n\n```bash\n# Verbose build output\nmake VERBOSE=1\n\n# Clean rebuild\nrm -rf build\nmkdir build \u0026\u0026 cd build\ncmake .. \u0026\u0026 make\n\n# Check compiler version\ng++ --version\ncmake --version\n```\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch: `git checkout -b feature/amazing-feature`\n3. Make your changes\n4. Add tests for new functionality\n5. Run tests: `ctest`\n6. Commit changes: `git commit -m 'Add amazing feature'`\n7. Push to branch: `git push origin feature/amazing-feature`\n8. Open a Pull Request\n\n## Development Environment\n\nThis project is developed using:\n- **Docker**: For consistent development environment\n- **CLion**: IDE with remote development support\n- **GCC 11**: Primary compiler for C++20 features\n\n## License\n\n[Add your license here]\n\n## Roadmap\n\n- [ ] Basic ORM functionality\n- [ ] SQLite backend\n- [ ] PostgreSQL backend\n- [ ] MySQL backend\n- [ ] Query builder\n- [ ] Migrations support\n- [ ] Connection pooling\n- [ ] Header-only conversion\n\n## Changelog\n\n### v1.0.0 (Current)\n- Initial project setup\n- CMake configuration with C++20\n- Google Test integration\n- Basic project structure\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fverma-kartik%2Ftrantor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fverma-kartik%2Ftrantor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fverma-kartik%2Ftrantor/lists"}