{"id":23286742,"url":"https://github.com/fazers/cppup","last_synced_at":"2026-05-03T22:34:02.071Z","repository":{"id":267146379,"uuid":"896994534","full_name":"FaZeRs/cppup","owner":"FaZeRs","description":null,"archived":false,"fork":false,"pushed_at":"2025-10-28T21:04:44.000Z","size":158,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-28T21:35:40.759Z","etag":null,"topics":["cpp","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FaZeRs.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-12-01T19:59:13.000Z","updated_at":"2025-10-28T21:04:49.000Z","dependencies_parsed_at":"2024-12-08T17:31:12.712Z","dependency_job_id":"8ce1b749-ce94-49f8-ae0b-19859892dbb4","html_url":"https://github.com/FaZeRs/cppup","commit_stats":{"total_commits":10,"total_committers":1,"mean_commits":10.0,"dds":0.0,"last_synced_commit":"145d08eed99e64d172cb5e5fe1f2a40f7eaebda2"},"previous_names":["fazers/cppup"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/FaZeRs/cppup","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FaZeRs%2Fcppup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FaZeRs%2Fcppup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FaZeRs%2Fcppup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FaZeRs%2Fcppup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FaZeRs","download_url":"https://codeload.github.com/FaZeRs/cppup/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FaZeRs%2Fcppup/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32587820,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T22:12:39.696Z","status":"ssl_error","status_checked_at":"2026-05-03T22:09:10.534Z","response_time":103,"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":["cpp","rust"],"created_at":"2024-12-20T02:14:16.661Z","updated_at":"2026-05-03T22:34:02.064Z","avatar_url":"https://github.com/FaZeRs.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cppup\n\n[![codecov](https://codecov.io/gh/fazers/cppup/branch/master/graph/badge.svg)](https://codecov.io/gh/fazers/cppup)\n[![CI](https://github.com/fazers/cppup/workflows/CI/badge.svg)](https://github.com/UfazersSERNAME/cppup/actions)\n\nA powerful and interactive C++ project generator written in Rust. It helps you quickly set up new C++ projects with modern best practices and your preferred configurations.\n\n## Features\n\n- 🎯 Interactive CLI with smart defaults\n- 🏗️ Multiple build systems (CMake, Make)\n- 📦 Package manager integration (Conan, Vcpkg)\n- ✅ Testing framework setup (doctest, Google Test, Catch2, Boost.Test)\n- 🔍 Code quality tools (clang-format, clang-tidy, cppcheck)\n- 📝 License management (MIT, Apache-2.0, GPL-3.0, BSD-3-Clause)\n- 🎨 Project templates (Executable, Library)\n- 🔄 Git initialization\n\n## Prerequisites\n\n- C++ compiler - clang or gcc\n- CMake or Make build system\n- Optional: Conan or Vcpkg package manager\n- Optional: clang-format, clang-tidy, or cppcheck for code quality tools\n\n## Building\n\n```bash\ncargo build\n```\n\n## Development\n\n### Running Tests\n\n```bash\ncargo test\n```\n\n### Code Coverage\n\nGenerate code coverage reports locally:\n\n```bash\n# Install cargo-tarpaulin\ncargo install cargo-llvm-cov\n\n# Print the coverage summary to stdout\ncargo llvm-cov\n\n# Open coverage report\ncargo llvm-cov --open\n```\n\n### Pre-commit Hooks\n\nThis project includes pre-commit hooks that run code formatting and linting checks before each commit. To install them:\n\n```bash\n./hooks/install-hooks.sh\n```\n\nThe pre-commit hook will automatically:\n\n- Check code formatting with `cargo fmt`\n- Run linting checks with `cargo clippy`\n\nIf you need to commit without running the hooks (not recommended), use:\n\n```bash\ngit commit --no-verify\n```\n\n## Usage\n\n### Interactive Mode\n\nSimply run:\n\n```bash\ncppup\n```\n\nFollow the interactive prompts to configure your project.\n\n### Non-Interactive Mode\n\nCreate a new executable project with specific settings:\n\n```bash\ncppup --name my-project \\\n      --description \"My awesome C++ project\" \\\n      --project-type executable \\\n      --build-system cmake \\\n      --cpp-standard 17 \\\n      --package-manager conan \\\n      --test-framework doctest \\\n      --license MIT \\\n      --quality-tools clang-format,clang-tidy \\\n      --non-interactive\n```\n\n### Available Options\n\n- `--name`: Project name\n- `--description`: Project description\n- `--project-type`: `executable` or `library`\n- `--build-system`: `cmake` or `make`\n- `--cpp-standard`: `11`, `14`, `17`, `20`, or `23`\n- `--package-manager`: `none`, `conan`, or `vcpkg`\n- `--test-framework`: `none`, `doctest`, `gtest`, `catch2`, or `boosttest`\n- `--license`: `MIT`, `Apache-2.0`, `GPL-3.0`, or `BSD-3-Clause`\n- `--quality-tools`: Comma-separated list of `clang-format`, `clang-tidy`, `cppcheck`\n- `--non-interactive`: Skip interactive prompts\n- `--path`: Output directory (default: current directory)\n- `--git`: Initialize git repository (default: true)\n\n## Project Structure\n\nGenerated project structure for an executable:\n\n```text\nmy-project/\n├── src/\n│   └── main.cpp\n├── include/\n├── assets/\n├── tests/           # If testing is enabled\n├── build/\n├── CMakeLists.txt   # Or Makefile\n├── .gitignore\n├── LICENSE\n└── README.md\n```\n\nFor a library:\n\n```text\nmy-project/\n├── src/\n│   └── lib.cpp\n├── include/\n│   └── my-project.hpp\n├── examples/\n├── tests/           # If testing is enabled\n├── build/\n├── CMakeLists.txt   # Or Makefile\n├── .gitignore\n├── LICENSE\n└── README.md\n```\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Author\n\nNauris Linde \u003cnaurislinde@gmail.com\u003e\n\n## Contributing\n\nContributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.\n\n## Acknowledgments\n\n- [Rust](https://www.rust-lang.org/) for the programming language\n- [Handlebars](https://handlebarsjs.com/) for templating\n- [Conan](https://conan.io/) for package management\n- [Vcpkg](https://github.com/microsoft/vcpkg) for package management\n- [CMake](https://cmake.org/) for build system\n- [Make](https://www.gnu.org/software/make/) for build system\n- [doctest](https://github.com/doctest/doctest) for testing\n- [Catch2](https://github.com/catchorg/Catch2) for testing\n- [Boost.Test](https://www.boost.org/doc/libs/1_83_0/libs/test/doc/html/index.html) for testing\n- [Google Test](https://github.com/google/googletest) for testing\n- [Clang Tidy](https://clang.llvm.org/extra/clang-tidy/) for code quality\n- [Cppcheck](https://cppcheck.sourceforge.io/) for code quality\n- [Clang Format](https://clang.llvm.org/docs/ClangFormat.html) for code formatting\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffazers%2Fcppup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffazers%2Fcppup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffazers%2Fcppup/lists"}