compiledb
Tool for generating Clang JSON Compilation Database files for make-based build systems.
Decision gist · record as of 2026-08-14
Yes, if you maintain a large make-based C/C++ project and need language server or IDE integration. The low install friction, active maintenance, no security issues, and GPL-3.0-or-later license make it a solid choice for development workflows. Not suitable for proprietary closed-source work due to copyleft licensing.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires GNU make and a Makefile-based build system; does not work with cmake projects (which already generate compilation databases).
- Low friction: pure Python wheel with only click and bashlex as runtime dependencies.
- Actively maintained with a recent commit (2026-08-14) and no known vulnerabilities.
License · maintenance · safety
GPL-3.0-or-later (copyleft) — Licensed under GPL-3.0-or-later (copyleft). Any derivative work or distribution must also be licensed under GPLv3 or later; not suitable for proprietary closed-source projects.
last release 2025-03-23 (509 days) · last repo commit 2026-08-14 · 1,652 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 201,271 downloads/mo, #9,676 on PyPI
Alternatives
Verify before relying
pip install compiledb
# Generate compilation database from make build
compiledb make
# Or parse from existing build log
compiledb --parse build-log.txt- Whether the tool correctly handles cross-compilation scenarios beyond the stated 'cross-compiling friendly' claim in the description.
- Performance characteristics on very large codebases compared to similar tools like Bear.
What it is and what it does
compiledb is a command-line tool that generates Clang's JSON compilation database format for C/C++ projects built with GNU make. It wraps the make command and extracts compile commands using make's dry-run and keep-going options, avoiding the need for a full clean rebuild. The tool outputs a compile_commands.json file that can be consumed by language servers, IDE plugins, and code analysis tools like YouCompleteMe, cquery, and ccls.
The package is designed for large non-cmake codebases where existing tools like YCM-Generator or Bear were either too slow or incompatible. It supports both the standard 'arguments' list format and the 'command' string format for compilation databases, and can parse compile commands from arbitrary build logs or stdin. It runs on Python 3.3+, depends only on click and bashlex, and has been tested on Windows, Linux, and macOS.
Use it for
- Set up code navigation and IDE integration for large AOSP or embedded C/C++ projects without rebuilding the entire codebase.
- Generate compilation databases for Vim or Neovim with language server plugins (YouCompleteMe, LanguageClient, ALE) to enable code completion and diagnostics.
- Index legacy C/C++ codebases with make-based build systems for use with static analysis tools and code browsers.
- Integrate compilation database generation into CI/CD pipelines to support code quality and analysis tools without slowing down builds.
- Parse existing build logs to retroactively generate compilation databases for offline analysis or tool integration.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you maintain a large make-based C/C++ project and need language server or IDE integration.
The low install friction, active maintenance, no security issues, and GPL-3.0-or-later license make it a solid choice for development workflows. Not suitable for proprietary closed-source work due to copyleft licensing.
Install
compiledb on PyPI
Before you install
Low friction: pure Python wheel with only click and bashlex as runtime dependencies. Actively maintained with a recent commit (2026-08-14) and no known vulnerabilities.
Requires GNU make and a Makefile-based build system; does not work with cmake projects (which already generate compilation databases).
License in practice
Licensed under GPL-3.0-or-later (copyleft). Any derivative work or distribution must also be licensed under GPLv3 or later; not suitable for proprietary closed-source projects.
Quickstart
pip install compiledb
# Generate compilation database from make build
compiledb make
# Or parse from existing build log
compiledb --parse build-log.txt
Verify before relying
- Whether the tool correctly handles cross-compilation scenarios beyond the stated 'cross-compiling friendly' claim in the description.
- Performance characteristics on very large codebases compared to similar tools like Bear.
Package facts
| License | GPL-3.0-or-later copyleft |
| Python support | Supports the current Python release >=3.3 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 2 packagesclickbashlex |
| Maintenance | Actively maintained 509 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 201,271 / month, #9,676 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaIntended Audience :: DevelopersLicense :: OSI Approved :: GNU General Public License v3 (GPLv3)Operating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.3Topic :: Software Development :: Build Tools |
Evidence: compiledb-0.10.7-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “clang compilation database generator”
- compiledbGenerates Clang JSON compilation databases from GNU make-based build…
- scan-buildRuns the Clang static analyzer on C/C++ projects using a compilation…
- pycparserpycparser is a C language parser written in pure Python that parses C…
Give your agent the search over MCP, or paste the wish link into any chat.
More Build Tools packages
Provides reusable utilities for Python packaging interoperability, including version handling, specifiers, markers, requirements, tags, and metadata parsing according to standards like PEP 440 and PEP 425.
Wraps any iterable to display a real-time progress bar in the terminal or Jupyter notebook, showing iteration count, elapsed time, and estimated time remaining.
pip is the standard installer for Python packages, enabling you to download and install packages from the Python Package Index and other indexes into your Python environment.
Hatchling is a standards-compliant Python build backend that handles packaging, metadata, and distribution of Python projects when configured in a project's pyproject.toml file.
Generates Python gRPC service stubs and message classes from Protocol Buffer definitions, enabling developers to build gRPC clients and servers.
pre-commit is a framework for installing and running git hooks written in any language before commits are made, automating code quality and validation checks across multi-language projects.
Install it if your team needs consistent, automated validation at commit time.
See also conan · scan-build · sccache · clang · hatch_build_scripts · mbake · nanopb · pccm · clangd-tidy · libclang