{"id":19429947,"url":"https://github.com/soraxas/cppm","last_synced_at":"2026-06-19T07:31:50.758Z","repository":{"id":56430044,"uuid":"311013637","full_name":"soraxas/cppm","owner":"soraxas","description":"Progress monitor for C++, with fancy bar, speed monitor, and estimated time to finish","archived":false,"fork":false,"pushed_at":"2022-10-04T23:48:49.000Z","size":136,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-03-31T06:34:51.062Z","etag":null,"topics":["cpp","cpp11","progress-bar","progress-monitoring","tqdm"],"latest_commit_sha":null,"homepage":"","language":"C++","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/soraxas.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}},"created_at":"2020-11-08T08:03:55.000Z","updated_at":"2022-06-30T06:45:49.000Z","dependencies_parsed_at":"2023-01-19T03:30:33.513Z","dependency_job_id":null,"html_url":"https://github.com/soraxas/cppm","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/soraxas/cppm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soraxas%2Fcppm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soraxas%2Fcppm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soraxas%2Fcppm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soraxas%2Fcppm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/soraxas","download_url":"https://codeload.github.com/soraxas/cppm/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soraxas%2Fcppm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34522034,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-19T02:00:06.005Z","response_time":61,"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","cpp11","progress-bar","progress-monitoring","tqdm"],"created_at":"2024-11-10T14:22:35.735Z","updated_at":"2026-06-19T07:31:50.733Z","avatar_url":"https://github.com/soraxas.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CPPM: C++ Program Progress Monitor\n\n`cppm` is a  **c++ monitor** for monitoring progress of loops, inspired by [tqdm](https://github.com/tqdm/tqdm). The [official](https://github.com/tqdm/tqdm.cpp) c++ port lacks a lot of features and is not being maintained. `cppm` aims to provide an easy-to-use header-only file to be dropped in any c++ project for monitoring program progress.\n\nThis is useful if you need to run some process and would like to monitor the progress of some loop. For most cases, it will display:\n\n- speed of iterations per second\n- current percentage\n- progress bar\n- elapsed time\n- estimated remaining time\n\n`cppm` uses syntax upto C++11.\n\n# Quick install\n\nYou can use the following in your CMakeLists.txt\n```cmake\ninclude(FetchContent)\n# ==================================================\nset (EXT_CPPM \"ext_cppm\")\n\tFetchContent_Declare (\n    ${EXT_CPPM}\n\n    PREFIX         ${EXT_CPPM}\n\t\tGIT_REPOSITORY https://github.com/soraxas/cppm\n\t\tGIT_TAG        2e946ee1261b61b955d55b5d405410f34fb8ce4a\n\t\tGIT_SHALLOW    ON\n\n\t\tBUILD_ALWAYS   OFF\n    INSTALL_DIR    ${CMAKE_CURRENT_BINARY_DIR}/ext/${EXT_CPPM}\n\n\t\tCMAKE_CACHE_ARGS\n\t\t\t-DCMAKE_INSTALL_PREFIX:PATH=\u003cINSTALL_DIR\u003e\n\n\t)\nFetchContent_MakeAvailable(${EXT_CPPM})\n# ==================================================\n\n# ......\n# ......\n\ntarget_link_libraries(${PROJECT_NAME} cppm)\ntarget_include_directories(${PROJECT_NAME} PRIVATE $\u003cTARGET_PROPERTY:cppm,INTERFACE_INCLUDE_DIRECTORIES\u003e)\n```\n\n\n# Usage\n\n`cppm` can be used as a monitor without explicit size, of which it will display the speed of the iterations per second.\n\n```c++\nauto pbar = cppm::pm(n);\nfor (...) {\n  ...\n  pbar.update();\n}\npbar.finish();\n```\n\n# Acknowledgement\n\nThe main `cppm`'s header only structure is based upon [cpptqdm](https://github.com/aminnj/cpptqdm), including the theme of the fancy progress bar. In addition, the wrapping of iterable container is inspired by [tqdm-cpp](https://gitlab.com/miguelraggi/tqdm-cpp).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoraxas%2Fcppm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsoraxas%2Fcppm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoraxas%2Fcppm/lists"}