{"id":13418581,"url":"https://github.com/ruben2020/codequery","last_synced_at":"2025-10-21T04:52:38.567Z","repository":{"id":6948348,"uuid":"8200155","full_name":"ruben2020/codequery","owner":"ruben2020","description":"A code-understanding,  code-browsing or code-search tool. This is a tool to index, then query or search C, C++, Java, Python, Ruby, Go and Javascript source code. It builds upon the databases of cscope and ctags, and provides a nice GUI tool.","archived":false,"fork":false,"pushed_at":"2025-07-13T16:40:55.000Z","size":9080,"stargazers_count":737,"open_issues_count":19,"forks_count":90,"subscribers_count":42,"default_branch":"master","last_synced_at":"2025-10-08T21:37:14.603Z","etag":null,"topics":["code-analysis","code-search","cscope","ctags"],"latest_commit_sha":null,"homepage":"https://ruben2020.github.io/codequery/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ruben2020.png","metadata":{"files":{"readme":"README.md","changelog":"NEWS.md","contributing":null,"funding":null,"license":"LICENSE.md","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}},"created_at":"2013-02-14T13:47:45.000Z","updated_at":"2025-09-27T16:13:44.000Z","dependencies_parsed_at":"2024-04-16T20:27:18.768Z","dependency_job_id":"a798cb92-0aa2-44f7-b023-95fae3bfa020","html_url":"https://github.com/ruben2020/codequery","commit_stats":{"total_commits":360,"total_committers":10,"mean_commits":36.0,"dds":"0.18611111111111112","last_synced_commit":"54aa2accd9d5dbd415da4d2ae30970fbdd314511"},"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"purl":"pkg:github/ruben2020/codequery","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruben2020%2Fcodequery","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruben2020%2Fcodequery/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruben2020%2Fcodequery/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruben2020%2Fcodequery/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruben2020","download_url":"https://codeload.github.com/ruben2020/codequery/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruben2020%2Fcodequery/sbom","scorecard":{"id":788545,"data":{"date":"2025-08-11","repo":{"name":"github.com/ruben2020/codequery","commit":"3f5fa3156507d163461ef6042475267c43d0111e"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.5,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","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":"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":"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":"Maintained","score":5,"reason":"7 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 5","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/cmake.yml:1","Info: no jobLevel write permissions found"],"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":"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":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Binary-Artifacts","score":6,"reason":"binaries present in source code","details":["Warn: binary detected: scintilla/scripts/__pycache__/Face.cpython-312.pyc:1","Warn: binary detected: scintilla/scripts/__pycache__/FileGenerator.cpython-312.pyc:1","Warn: binary detected: windows-install/wincommon/cscope.exe:1","Warn: binary detected: windows-install/wincommon/ctags.exe:1"],"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":"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: LICENSE.md:0","Info: FSF or OSI recognized license: Mozilla Public License 2.0: LICENSE.md:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/cmake.yml:82: update your workflow using https://app.stepsecurity.io/secureworkflow/ruben2020/codequery/cmake.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cmake.yml:135: update your workflow using https://app.stepsecurity.io/secureworkflow/ruben2020/codequery/cmake.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cmake.yml:146: update your workflow using https://app.stepsecurity.io/secureworkflow/ruben2020/codequery/cmake.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/cmake.yml:161: update your workflow using https://app.stepsecurity.io/secureworkflow/ruben2020/codequery/cmake.yml/master?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   3 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":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"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"}}]},"last_synced_at":"2025-08-23T06:47:25.597Z","repository_id":6948348,"created_at":"2025-08-23T06:47:25.597Z","updated_at":"2025-08-23T06:47:25.597Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280207189,"owners_count":26290616,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-21T02:00:06.614Z","response_time":58,"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":["code-analysis","code-search","cscope","ctags"],"created_at":"2024-07-30T22:01:04.047Z","updated_at":"2025-10-21T04:52:38.561Z","avatar_url":"https://github.com/ruben2020.png","language":"C++","funding_links":[],"categories":["TODO scan for Android support in followings","C++","Analysis","\u003ca name=\"cpp\"\u003e\u003c/a\u003eC++","others"],"sub_categories":["Library"],"readme":"![CodeQuery](doc/logotitle.png)\n===============================\n\nThis is a tool to index, then query or search C, C++, Java, Python, Ruby, Go and Javascript source code.\n\nIt builds upon the databases of [cscope](http://cscope.sourceforge.net/) and [Exuberant ctags](http://ctags.sourceforge.net/). It can also work with [Universal ctags](https://github.com/universal-ctags/ctags/), which is a drop-in replacement for Exuberant ctags.\n\nThe databases of *cscope* and *ctags* would be processed by the *cqmakedb* tool to generate the CodeQuery database file.\n\nThe CodeQuery database file can be viewed and queried using the *codequery* GUI tool.\n\n[![Build Status](https://github.com/ruben2020/codequery/actions/workflows/cmake.yml/badge.svg?branch=master)](https://github.com/ruben2020/codequery/actions)        [![Coverity Status](https://scan.coverity.com/projects/10066/badge.svg)](https://scan.coverity.com/projects/ruben2020-codequery)\n      \n\n## Latest version = 1.0.1\n\nWindows binaries available here for download: [CodeQuery@sourceforge downloads](https://sourceforge.net/projects/codequery/files/)\n\nOn Debian and Ubuntu Linux, the software can be installed using `apt-get install codequery`.\n\nTo build on Linux, please read the [INSTALL-LINUX](doc/INSTALL-LINUX.md) file.\n\nOn Mac, the software can be installed through [Brew](http://brew.sh/) using `brew install codequery`.\n\nPlease read [NEWS](NEWS.md) to find out more.\n\n\n## How is it different from cscope and ctags? What are the advantages?\n\nBoth cscope and ctags can do symbol lookup and identify functions, macros, classes and structs.\n\ncscope is very C-centric, but is fuzzy enough to cover C++ and Java, but not very well for e.g. it doesn't understand destructors and class member instantiations. It can't provide relationships of class inheritance and membership. cscope can do \"functions that call this function\" and \"functions called by this function\". This is a very powerful feature that makes cscope stand out among comparable tools.\n\nctags does many languages well and understands destructors, member instantiations, and the relationships of class membership and inheritance. From ctags, we can find out \"members and methods of this class\", \"class which owns this member or method\", \"parent of this class\", \"child of this class\" etc. However, it doesn't do \"functions that call this function\" or \"functions called by this function\".\n\nSo both these tools have their pros and cons, but complement each other.\n\nCodeQuery is a project that attempts to combine the features available from both cscope and ctags, provide faster database access compared to cscope (because it uses sqlite) and provides a nice GUI tool as well. Due to this faster database access, fast auto-completion of search terms and multiple complex queries to perform visualization is possible.\n\nIn addition, [pycscope](https://github.com/portante/pycscope) is used to add support for Python, in place of cscope.\n\nIn addition, [starscope](https://github.com/eapache/starscope) is used to add support for Ruby, Go and Javascript, in place of cscope.\n\n\n## What features does CodeQuery have?\n\n* Combines the best of both cscope and ctags\n* Faster due to the use of sqlite for the CodeQuery database\n* Cross-platform GUI tool\n* Fast auto-completion of search term\n* Case-insensitive, partial keyword search - wildcard search supported * and ?\n* Exact match search\n* Filter search results by file path\n* File viewer with syntax highlighting, for UTF-8 encoded source files\n* Ability to open viewed file in an external editor or IDE\n* Visualization of function call graph and class inheritance based on search term\n* Visualization graphs can be saved to PNG or Graphviz DOT files\n\n\n## What types of query can I make?\n\n* Symbol\n* Function or macro definition\n* Class or struct\n* Functions calling this function\n* Functions called by this function\n* Calls of this function or macro\n* Class which owns this member or method\n* Members and methods of this class\n* Parent of this class (inheritance)\n* Children of this class (inheritance)\n* Files including this file\n* Full path for file\n* Functions and macros inside this file\n* Grep\n\n\n## What does it look like?\n\n![CodeQuery screenshot](doc/screenshot.png)\n\n\n## How does the visualization look like?\n\nHere's a function call graph based on the search term of \"updateFilePathLabel\". A -\u003e B means A calls B:    \n![Visualization screenshot](doc/screenshot2.png)\n\n\n## Are other editors like vim or emacs or Visual Studio Code supported?\n\nYes!\n\nThere is a vim plugin for CodeQuery called [vim-codequery](https://github.com/devjoe/vim-codequery) by [devjoe](https://github.com/devjoe).\n\nThere is a Visual Studio Code extension for CodeQuery called [codequery4vscode](https://github.com/ruben2020/codequery4vscode) by [ruben2020](https://github.com/ruben2020). The Visual Studio Code Extension Marketplace page for this extension is [ruben2020.codequery4vscode](https://marketplace.visualstudio.com/items?itemName=ruben2020.codequery4vscode).\n\nWe welcome contributors to develop plugins for other editors too.\n\n\n## What does it cost? How is it licensed?\n\nIt's freeware and free open source software.\n\nThis software is licensed under the [Mozilla Public License, version 2.0 (MPL-2.0)](https://www.mozilla.org/en-US/MPL/2.0/). See [LICENSE.md](LICENSE.md) or [LICENSE.txt](windows-install/wincommon/LICENSE.txt). This applies to both the distributed Source Code Form and the distributed Executable Form of the software.\n\nTo understand the MPL-2.0 license, please read the [MPL-2.0 FAQ by mozilla.org](https://www.mozilla.org/en-US/MPL/2.0/FAQ/).\n\nFiles under the `querylib` directory are licensed under the [MIT license](http://opensource.org/licenses/MIT). See [QueryLib README](querylib/README.txt). This is a library to query CodeQuery database files. This library is MIT-licensed, so that it may be used to create plugins for editors, IDEs and other software without restrictions. It's only dependency is on sqlite3.\n\nThird party software attribution can be found in [THIRDPARTY.md](THIRDPARTY.md).\n\n## Can I use it in a commercial environment without purchasing, for an unlimited time?\n\nYes. However, donations are welcomed.\n\n\n## Which platforms are supported?\n\nIt has been tested on Windows 10 64-bit, Mac OS X, Ubuntu and Arch Linux 64-bit.\n\nContributions are welcomed to attempt ports to other operating systems.\n\n\n## Is the software available in other languages?\n\nYes. This applies only to the GUI tool.\n\nContributions are welcomed to update or provide new translations.\n\n\n## How to install it?\n\nOn Windows, EXE setup packages will be provided here: [CodeQuery@sourceforge downloads](https://sourceforge.net/projects/codequery/files/). The EXE setup package shall also contain cscope.exe, ctags.exe and the required DLLs. So, everything you need is in one package. However, [pycscope](https://github.com/portante/pycscope) (optional - only for Python) and [starscope](https://github.com/eapache/starscope) (optional - only for Ruby, Go and Javascript) are not bundled together with this setup package and need to be installed separately.\n\nOn Debian and Ubuntu Linux, the software can be installed using `apt-get install codequery`.\n\nOn Mac, the software can be installed through [Brew](http://brew.sh/) using `brew install codequery`.\n\nTo build on Linux and Mac, please read the [INSTALL-LINUX](doc/INSTALL-LINUX.md) file.\n\nVersion 15.8a of [cscope](http://cscope.sourceforge.net/) or higher, works best with CodeQuery.\n\n\n## How do I use it?\n\nOn Windows: [HOWTO-WINDOWS](windows-install/wincommon/HOWTO-WINDOWS.txt). This file is included in the EXE setup package.\n\nOn Linux and Mac: [HOWTO-LINUX](doc/HOWTO-LINUX.md)\n\nPlease read the HOWTO file provided for each platform. The workflow looks like this:\n![CodeQuery workflow](doc/workflow.png)\n\n\n## How do I generate whole-program call graphs or UML class diagrams?\n\nCodeQuery cannot do this at the moment.\n\nTo generate whole-program call graphs, please use [GNU cflow](https://www.gnu.org/software/cflow/) or [CodeViz](https://github.com/petersenna/codeviz) for C and C++. For Java, there is [Javashot](http://code.google.com/p/javashot/). \n\nTo generate whole-program UML class diagrams for various object-oriented languages, please use [tags2uml](https://github.com/ruben2020/tags2uml). \n\n\n## Are there any known limitations?\n\nFor C and C++, [inline assembly code](http://en.wikipedia.org/wiki/Inline_assembler) is not supported by all the tools. This mainly affects embedded software, OS and driver code.\n\nPlease exclude files with inline assembly code from the list of files (cscope.files) to be scanned.\n\n\n## How do I contact the authors for support, issues, bug reports, fix patches, feature requests etc.?\n\nPlease see the email address below, and also the Issues tab in GitHub.\n\nEmail address:    \n![Contact address](doc/emailaddr.png)\n\nWebsite: [CodeQuery website](https://github.com/ruben2020/codequery)\n\n\n## How can I contribute?\n\n* Report bugs\n* Provide feedback, new ideas, suggestions etc. What would you like to see?\n* Tell your friends, recommend it on StackOverflow or social media\n* Fix bugs (see Issues tab)\n* Update translations (Deutsch, Francais, Japanese etc.)\n* Port to other platforms\n* Write plugins for emacs, eclipse, Notepad++, NetBeans, Jenkins etc.\n* Add support for other languages e.g. Objective-C, Swift\n\n\n## List of Contributors\n\n[ruben2020](https://github.com/ruben2020)    \n[naseer](https://github.com/naseer)    \n[bruno-](https://github.com/bruno-)    \n[devjoe](https://github.com/devjoe)    \n[jonashaag](https://github.com/jonashaag)    \n[ilovezfs](https://github.com/ilovezfs)    \n[JCount](https://github.com/JCount)    \n[brianonn](https://github.com/brianonn)    \n[teungri](https://github.com/teungri)    \n[stweise](https://github.com/stweise)    \n(More welcomed)\n\n\n## Credits\n\nWe thank the people behind the following projects:    \n[cscope](http://cscope.sourceforge.net/) - our database is derived from this   \n[Exuberant ctags](http://ctags.sourceforge.net/)- our database is derived from this   \n[Universal ctags](https://github.com/universal-ctags/ctags/) - drop-in replacement for Exuberant ctags    \n[pycscope](https://github.com/portante/pycscope) - our database (for Python) is derived from this    \n[starscope](https://github.com/eapache/starscope) - our database (for Ruby, Go and Javascript) is derived from this    \n[sqlite3](http://www.sqlite.org/) - our database is using this format    \n[CMake](http://www.cmake.org/) - cross-platform build toolchain for CodeQuery    \n[Qt open source](http://qt-project.org/) - GUI toolkit used to build CodeQuery    \n[showgraph](http://code.google.com/p/showgraph/) - visualization done using this library    \n[scintilla](http://www.scintilla.org/) - our code editing widget    \n[vim-codequery](https://github.com/devjoe/vim-codequery) - vim plugin for CodeQuery    \n[Axialis](http://www.axialis.com/iconworkshop) - free images for CodeQuery and this website    \n[brew](http://brew.sh/) - binaries for Mac here    \n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fruben2020%2Fcodequery","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fruben2020%2Fcodequery","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fruben2020%2Fcodequery/lists"}