{"id":13417983,"url":"https://github.com/gflags/gflags","last_synced_at":"2026-03-10T10:06:38.688Z","repository":{"id":8151411,"uuid":"9571473","full_name":"gflags/gflags","owner":"gflags","description":"The gflags package contains a C++ library that implements commandline flags processing. It includes built-in support for standard types such as string and the ability to define flags in the source file in which they are used. Online documentation available at:","archived":false,"fork":false,"pushed_at":"2025-12-06T13:49:51.000Z","size":1598,"stargazers_count":3005,"open_issues_count":32,"forks_count":855,"subscribers_count":109,"default_branch":"main","last_synced_at":"2026-02-14T23:17:08.870Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://gflags.github.io/gflags/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gflags.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog.txt","contributing":null,"funding":null,"license":"COPYING.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.txt","dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2013-04-20T22:21:20.000Z","updated_at":"2026-02-14T00:26:11.000Z","dependencies_parsed_at":"2025-12-04T02:03:29.793Z","dependency_job_id":null,"html_url":"https://github.com/gflags/gflags","commit_stats":{"total_commits":397,"total_committers":59,"mean_commits":6.728813559322034,"dds":"0.36523929471032746","last_synced_commit":"a738fdf9338412f83ab3f26f31ac11ed3f3ec4bd"},"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"purl":"pkg:github/gflags/gflags","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gflags%2Fgflags","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gflags%2Fgflags/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gflags%2Fgflags/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gflags%2Fgflags/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gflags","download_url":"https://codeload.github.com/gflags/gflags/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gflags%2Fgflags/sbom","scorecard":{"id":424961,"data":{"date":"2025-08-11","repo":{"name":"github.com/gflags/gflags","commit":"52e94563eba1968783864942fedf6e87e3c611f4"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":6.3,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":9,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/test.yml:30","Warn: no topLevel permission defined: .github/workflows/test.yml:1"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":8,"reason":"Found 22/26 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":8,"reason":"dependency not pinned by hash detected -- score normalized to 8","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/gflags/gflags/test.yml/master?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   2 out of   2 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: COPYING.txt:0","Info: FSF or OSI recognized license: BSD 3-Clause \"New\" or \"Revised\" License: COPYING.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":8,"reason":"2 out of the last 2 releases have a total of 2 signed artifacts.","details":["Info: signed release artifact: gflags-2.2.2.tar.gz.asc: https://github.com/gflags/gflags/releases/tag/v2.2.2","Info: signed release artifact: gflags-2.2.1.tar.gz.asc: https://github.com/gflags/gflags/releases/tag/v2.2.1","Warn: release artifact v2.2.2 does not have provenance: https://api.github.com/repos/gflags/gflags/releases/13942476","Warn: release artifact v2.2.1 does not have provenance: https://api.github.com/repos/gflags/gflags/releases/7002713"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-19T02:02:31.306Z","repository_id":8151411,"created_at":"2025-08-19T02:02:31.306Z","updated_at":"2025-08-19T02:02:31.306Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30329698,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T05:25:20.737Z","status":"ssl_error","status_checked_at":"2026-03-10T05:25:17.430Z","response_time":106,"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":[],"created_at":"2024-07-30T22:00:56.657Z","updated_at":"2026-03-10T10:06:38.652Z","avatar_url":"https://github.com/gflags.png","language":"C++","readme":"[![tests](https://github.com/gflags/gflags/actions/workflows/test.yml/badge.svg)](https://github.com/gflags/gflags/actions/workflows/test.yml)\n\nThe documentation of the gflags library is available online at https://gflags.github.io/gflags/.\n\n\n11 November 2018\n----------------\n\nI've just released gflags 2.2.2.\n\nThis maintenance release improves life of Bazel users (no more \"config.h\" leaking into global include paths),\nfixes build with recent MinGW versions, and silences a number of static code analyzer and compiler warnings.\nThe build targets exported by the CMake configuration of this library are now also prefixed by the package\nname \"gflags::\" following a more recent (unwritten) CMake convention. The unprefixed target names are still\nsupported to avoid that dependent projects have to be modified due to this change in imported target names.\n\nPlease report any further issues with this release using the GitHub issue tracker.\n\n\n11 July 2017\n------------\n\nI've just released gflags 2.2.1.\n\nThis maintenance release primarily fixes build issues on Windows and\nfalse alarms reported by static code analyzers.\n\nPlease report any further issues with this release using the GitHub issue tracker.\n\n\n25 November 2016\n----------------\n\nI've finally released gflags 2.2.0.\n\nThis release adds support for use of the gflags library as external dependency\nnot only in projects using CMake, but also [Bazel](https://bazel.build/),\nor [pkg-config](https://www.freedesktop.org/wiki/Software/pkg-config/).\nOne new minor feature is added in this release: when a command flag argument\ncontains dashes, these are implicitly converted to underscores.\nThis is to allow those used to separate words of the flag name by dashes\nto do so, while the flag variable names are required to use underscores.\n\nMemory leaks reported by valgrind should be resolved by this release.\nThis release fixes build errors with MS Visual Studio 2015.\n\nPlease report any further issues with this release using the GitHub issue tracker.\n\n\n24 March 2015\n-------------\n\nI've just released gflags 2.1.2.\n\nThis release completes the namespace change fixes. In particular,\nit restores binary ABI compatibility with release version 2.0.\nThe deprecated \"google\" namespace is by default still kept as\nprimary namespace while symbols are imported into the new \"gflags\" namespace.\nThis can be overridden using the CMake variable GFLAGS_NAMESPACE.\n\nOther fixes of the build configuration are related to the (patched)\nCMake modules FindThreads.cmake and CheckTypeSize.cmake. These have\nbeen removed and instead the C language is enabled again even though\ngflags is written in C++ only.\n\nThis release also marks the complete move of the gflags project\nfrom Google Code to GitHub. Email addresses of original issue\nreporters got lost in the process. Given the age of most issue reports,\nthis should be negligible.\n\nPlease report any further issues using the GitHub issue tracker.\n\n\n30 March 2014\n-------------\n\nI've just released gflags 2.1.1.\n\nThis release fixes a few bugs in the configuration of gflags\\_declare.h\nand adds a separate GFLAGS\\_INCLUDE\\_DIR CMake variable to the build configuration.\nSetting GFLAGS\\_NAMESPACE to \"google\" no longer changes also the include\npath of the public header files. This allows the use of the library with\nother Google projects such as glog which still use the deprecated \"google\"\nnamespace for the gflags library, but include it as \"gflags/gflags.h\".\n\n20 March 2014\n-------------\n\nI've just released gflags 2.1.\n\nThe major changes are the use of CMake for the build configuration instead\nof the autotools and packaging support through CPack. The default namespace\nof all C++ symbols is now \"gflags\" instead of \"google\". This can be\nconfigured via the GFLAGS\\_NAMESPACE variable.\n\nThis release compiles with all major compilers without warnings and passed\nthe unit tests on  Ubuntu 12.04, Windows 7 (Visual Studio 2008 and 2010,\nCygwin, MinGW), and Mac OS X (Xcode 5.1).\n\nThe SVN repository on Google Code is now frozen and replaced by a Git\nrepository such that it can be used as Git submodule by projects. The main\nhosting of this project remains at Google Code. Thanks to the distributed\ncharacter of Git, I can push (and pull) changes from both GitHub and Google Code\nin order to keep the two public repositories in sync.\nWhen fixing an issue for a pull request through either of these hosting\nplatforms, please reference the issue number as\n[described here](https://code.google.com/p/support/wiki/IssueTracker#Integration_with_version_control).\nFor the further development, I am following the\n[Git branching model](http://nvie.com/posts/a-successful-git-branching-model/)\nwith feature branch names prefixed by \"feature/\" and bugfix branch names\nprefixed by \"bugfix/\", respectively.\n\nBinary and source [packages](https://github.com/schuhschuh/gflags/releases) are available on GitHub.\n\n\n14 January 2014\n---------------\n\nThe migration of the build system to CMake is almost complete.\nWhat remains to be done is rewriting the tests in Python such they can be\nexecuted on non-Unix platforms and splitting them up into separate CTest tests.\nThough merging these changes into the master branch yet remains to be done,\nit is recommended to already start using the\n[cmake-migration](https://github.com/schuhschuh/gflags/tree/cmake-migration) branch.\n\n\n20 April 2013\n-------------\n\nMore than a year has past since I (Andreas) took over the maintenance for\n`gflags`. Only few minor changes have been made since then, much to my regret.\nTo get more involved and stimulate participation in the further\ndevelopment of the library, I moved the project source code today to\n[GitHub](https://github.com/schuhschuh/gflags).\nI believe that the strengths of [Git](http://git-scm.com/) will allow for better community collaboration\nas well as ease the integration of changes made by others. I encourage everyone\nwho would like to contribute to send me pull requests.\nGit's lightweight feature branches will also provide the right tool for more\nradical changes which should only be merged back into the master branch\nafter these are complete and implement the desired behavior.\n\nThe SVN repository remains accessible at Google Code and I will keep the\nmaster branch of the Git repository hosted at GitHub and the trunk of the\nSubversion repository synchronized. Initially, I was going to simply switch the\nGoogle Code project to Git, but in this case the SVN repository would be\nfrozen and force everyone who would like the latest development changes to\nuse Git as well. Therefore I decided to host the public Git repository at GitHub\ninstead.\n\nPlease continue to report any issues with gflags on Google Code. The GitHub project will\nonly be used to host the Git repository.\n\nOne major change of the project structure I have in mind for the next weeks\nis the migration from autotools to [CMake](http://www.cmake.org/).\nCheck out the (unstable!)\n[cmake-migration](https://github.com/schuhschuh/gflags/tree/cmake-migration)\nbranch on GitHub for details.\n\n\n25 January 2012\n---------------\n\nI've just released gflags 2.0.\n\nThe `google-gflags` project has been renamed to `gflags`.  I\n(csilvers) am stepping down as maintainer, to be replaced by Andreas\nSchuh.  Welcome to the team, Andreas!  I've seen the energy you have\naround gflags and the ideas you have for the project going forward,\nand look forward to having you on the team.\n\nI bumped the major version number up to 2 to reflect the new community\nownership of the project.  All the [changes](ChangeLog.txt)\nare related to the renaming.  There are no functional changes from\ngflags 1.7.  In particular, I've kept the code in the namespace\n`google`, though in a future version it should be renamed to `gflags`.\nI've also kept the `/usr/local/include/google/` subdirectory as\nsynonym of `/usr/local/include/gflags/`, though the former name has\nbeen obsolete for some time now.\n\n\n18 January 2011\n---------------\n\nThe `google-gflags` Google Code page has been renamed to\n`gflags`, in preparation for the project being renamed to\n`gflags`.  In the coming weeks, I'll be stepping down as\nmaintainer for the gflags project, and as part of that Google is\nrelinquishing ownership of the project; it will now be entirely\ncommunity run.  The name change reflects that shift.\n\n\n20 December 2011\n----------------\n\nI've just released gflags 1.7.  This is a minor release; the major\nchange is that `CommandLineFlagInfo` now exports the address in memory\nwhere the flag is located.  There has also been a bugfix involving\nvery long --help strings, and some other minor [changes](ChangeLog.txt).\n\n29 July 2011\n------------\n\nI've just released gflags 1.6.  The major new feature in this release\nis support for setting version info, so that --version does something\nuseful.\n\nOne minor change has required bumping the library number:\n`ReparseCommandlineFlags` now returns `void` instead of `int` (the int\nreturn value was always meaningless).  Though I doubt anyone ever used\nthis (meaningless) return value, technically it's a change to the ABI\nthat requires a version bump.  A bit sad.\n\nThere's also a procedural change with this release: I've changed the\ninternal tools used to integrate Google-supplied patches for gflags\ninto the opensource release.  These new tools should result in more\nfrequent updates with better change descriptions.  They will also\nresult in future `ChangeLog` entries being much more verbose (for better\nor for worse).\n\nSee the [ChangeLog](ChangeLog.txt) for a full list of changes for this release.\n\n24 January 2011\n---------------\n\nI've just released gflags 1.5.  This release has only minor changes\nfrom 1.4, including some slightly better reporting in --help, and\nan new memory-cleanup function that can help when running gflags-using\nlibraries under valgrind.  The major change is to fix up the macros\n(`DEFINE_bool` and the like) to work more reliably inside namespaces.\n\nIf you have not had a problem with these macros, and don't need any of\nthe other changes described, there is no need to upgrade.  See the\n[ChangeLog](ChangeLog.txt) for a full list of changes for this release.\n\n11 October 2010\n---------------\n\nI've just released gflags 1.4.  This release has only minor changes\nfrom 1.3, including some documentation tweaks and some work to make\nthe library smaller.  If 1.3 is working well for you, there's no\nparticular reason to upgrade.\n\n4 January 2010\n--------------\n\nI've just released gflags 1.3.  gflags now compiles under MSVC, and\nall tests pass.  I **really** never thought non-unix-y Windows folks\nwould want gflags, but at least some of them do.\n\nThe major news, though, is that I've separated out the python package\ninto its own library, [python-gflags](http://code.google.com/p/python-gflags).\nIf you're interested in the Python version of gflags, that's the place to\nget it now.\n\n10 September 2009\n-----------------\n\nI've just released gflags 1.2.  The major change from gflags 1.1 is it\nnow compiles under MinGW (as well as cygwin), and all tests pass.  I\nnever thought Windows folks would want unix-style command-line flags,\nsince they're so different from the Windows style, but I guess I was\nwrong!\n\nThe other changes are minor, such as support for --htmlxml in the\npython version of gflags.\n\n15 April 2009\n-------------\n\nI've just released gflags 1.1.  It has only minor changes fdrom gflags\n1.0 (see the [ChangeLog](ChangeLog.txt) for details).\nThe major change is that I moved to a new system for creating .deb and .rpm files.\nThis allows me to create x86\\_64 deb and rpm files.\n\nIn the process of moving to this new system, I noticed an\ninconsistency: the tar.gz and .rpm files created libraries named\nlibgflags.so, but the deb file created libgoogle-gflags.so.  I have\nfixed the deb file to create libraries like the others.  I'm no expert\nin debian packaging, but I believe this has caused the package name to\nchange as well.  Please let me know (at\n[[mailto:google-gflags@googlegroups.com](mailto:google-gflags@googlegroups.com)\ngoogle-gflags@googlegroups.com]) if this causes problems for you --\nespecially if you know of a fix!  I would be happy to change the deb\npackages to add symlinks from the old library name to the new\n(libgoogle-gflags.so -\u003e libgflags.so), but that is beyond my knowledge\nof how to make .debs.\n\nIf you've tried to install a .rpm or .deb and it doesn't work for you,\nlet me know.  I'm excited to finally have 64-bit package files, but\nthere may still be some wrinkles in the new system to iron out.\n\n1 October 2008\n--------------\n\ngflags 1.0rc2 was out for a few weeks without any issues, so gflags\n1.0 is now released.  This is much like gflags 0.9.  The major change\nis that the .h files have been moved from `/usr/include/google` to\n`/usr/include/gflags`.  While I have backwards-compatibility\nforwarding headeds in place, please rewrite existing code to say\n```\n   #include \u003cgflags/gflags.h\u003e\n```\ninstead of\n```\n   #include \u003cgoogle/gflags.h\u003e\n```\n\nI've kept the default namespace to google.  You can still change with\nwith the appropriate flag to the configure script (`./configure\n--help` to see the flags).  If you have feedback as to whether the\ndefault namespace should change to gflags, which would be a\nnon-backwards-compatible change, send mail to\n`google-gflags@googlegroups.com`!\n\nVersion 1.0 also has some neat new features, like support for bash\ncommandline-completion of help flags.  See the [ChangeLog](ChangeLog.txt)\nfor more details.\n\nIf I don't hear any bad news for a few weeks, I'll release 1.0-final.\n","funding_links":[],"categories":["TODO scan for Android support in followings","Uncategorized","C++","C++ (70)","Containers \u0026 Language Extentions \u0026 Linting","[C++](https://www.cpp-lang.net/)"],"sub_categories":["Uncategorized","For C++/C"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgflags%2Fgflags","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgflags%2Fgflags","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgflags%2Fgflags/lists"}