https://github.com/korbolkoinc/uuids
High performance C++ uuid generator
https://github.com/korbolkoinc/uuids
aes clang clang-format clang-tidy cmake cpp cpp20 hardware-acceleration random-generation rdseed simd simd-instructions simd-intrinsics uuid uuid-generator uuid-v4 uuids uuidv4
Last synced: 16 days ago
JSON representation
High performance C++ uuid generator
- Host: GitHub
- URL: https://github.com/korbolkoinc/uuids
- Owner: korbolkoinc
- License: mit
- Created: 2025-03-02T12:37:25.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2025-04-11T13:05:27.000Z (17 days ago)
- Last Synced: 2025-04-12T19:16:51.804Z (16 days ago)
- Topics: aes, clang, clang-format, clang-tidy, cmake, cpp, cpp20, hardware-acceleration, random-generation, rdseed, simd, simd-instructions, simd-intrinsics, uuid, uuid-generator, uuid-v4, uuids, uuidv4
- Language: C++
- Homepage:
- Size: 71.3 KB
- Stars: 0
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# π¦ Modern C++ Project Template
[](LICENSE)

A modern, feature-rich, customizable C++20 project template
## β¨ Features
- π Modern CMake (3.16+) setup
- π C++20 standard
- π Google Test integration
- π Comprehensive documentation structure
- π§ͺ Example code
- π οΈ Out-of-the-box compiler warnings
- π Code sanitizers
- π Code coverage support
- π Static analysis support
- π Continuous Integration ready
- π¦ Package management support
- π’ Installation and export targets## π Requirements
- CMake 3.16 or newer
- C++20 compatible compiler
- Git## π Quick Start
```bash
# Clone the repository
git clone https://github.com/hun756/CPP-Starter-Template.git my-project
cd my-project# Create build directory
mkdir build && cd build# Configure
cmake ..# Build
cmake --build .# Run tests
ctest# Run executable
./bin/cpp_project_template
```## π Project Structure
```
my-project/
βββ CMakeLists.txt # Main CMake configuration
βββ cmake/ # CMake modules and utilities
β βββ CompilerWarnings.cmake
β βββ Sanitizers.cmake
β βββ StaticAnalyzers.cmake
β βββ LTO.cmake
β βββ Packaging.cmake
β βββ FindGTest.cmake
β βββ FindGBenchmark.cmake # Benchmark iΓ§in eklendi
β βββ configs/ # Configuration templates
βββ include/ # Public header files
β βββ myproject/
β βββ ModuleA.h
β βββ ModuleB.h
βββ src/ # Source files
β βββ ModuleA.cpp
β βββ ModuleB.cpp
β βββ main.cpp
βββ test/ # Test files
β βββ CMakeLists.txt
β βββ ModuleATest.cpp
β βββ ModuleBTest.cpp
βββ bench/ # Benchmark files
β βββ CMakeLists.txt
β βββ StringProcessorBench.cpp
β βββ CalculatorBench.cpp
βββ examples/ # Example programs
β βββ CMakeLists.txt
β βββ example1.cpp
β βββ example2.cpp
βββ docs/ # Documentation
β βββ CMakeLists.txt
β βββ Doxyfile.in
βββ .clang-format # Formatting configuration
βββ .clang-tidy # Static analysis configuration
βββ .gitignore
βββ README.md
```## π§ Build Options
| Option | Default | Description |
|----------------------|---------|-----------------------------------------|
| BUILD_SHARED_LIBS | OFF | Build shared libraries |
| BUILD_EXAMPLES | ON | Build example programs |
| BUILD_TESTS | ON | Build tests |
| BUILD_BENCHMARKS | ON | Build benchmark programs |
| ENABLE_COVERAGE | OFF | Enable coverage reporting |
| ENABLE_SANITIZERS | OFF | Enable sanitizers in debug builds |
| ENABLE_PCH | OFF | Enable precompiled headers |
| ENABLE_LTO | OFF | Enable Link Time Optimization |
| ENABLE_CPPCHECK | OFF | Enable static analysis with cppcheck |
| ENABLE_CLANG_TIDY | OFF | Enable static analysis with clang-tidy |Example usage:
```bash
cmake .. -DBUILD_SHARED_LIBS=ON -DENABLE_SANITIZERS=ON
```## π Documentation
Generate documentation with Doxygen:
```bash
cmake --build . --target docs
```Create distributable packages:
```bash
cmake --build . --target package
```This project can be easily integrated in other CMake projects:
```cmake
find_package(cpp_project_template REQUIRED)
target_link_libraries(your_target PRIVATE cpp_project_template::cpp_project_template)
```## π€ Contributing
1. Fork the repository
2. Create a feature branch: `git checkout -b feature/my-feature`
3. Commit your changes: `git commit -am 'Add my feature'`
4. Push to the branch: `git push origin feature/my-feature`
5. Submit a pull request## π License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.