# Install dpp with Homebrew, Nix

Directly include C headers in D source code. Version 0.6.0 via Homebrew; verified 2026-06-13. Also installable with nix: nix profile install nixpkgs#dpp.

## Install

```sh
sudo av install brew:dpp
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install dpp
```

  Evidence: local Homebrew formula metadata

### Linux

- Nix (92%):

```sh
nix profile install nixpkgs#dpp
```

  Evidence: nixpkgs package indexes: pkgs/by-name/dp/dpp/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

## Package facts

- **Package key:** brew:dpp
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/dpp>
- **Version:** 0.6.0
- **Source summary:** Directly include C headers in D source code
- **Homepage:** <https://github.com/atilaneves/dpp>
- **Repository:** <https://github.com/atilaneves/dpp>
- **License:** BSL-1.0
- **Source archive:** <https://github.com/atilaneves/dpp.git>
- **Last updated:** 2026-06-13T01:24:10+02:00
- **Generated:** 2026-08-04T22:13:35+00:00

## Executables

- d++ (cli)
- d++ (alias)

## Build dependencies

- dtools
- dub
- ldc

## Uses from macOS

- llvm

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, arm64_ventura, sonoma, ventura, x86_64_linux

## Freshness

- Page generated: 2026-08-04
- Package-manager version: 0.6.0
- Package-manager updated: 2026-06-13
- Local data: ok
- Upstream repository: https://github.com/atilaneves/dpp
- info: No cached GitHub release or tag data was available.
## Project history and usage

dpp, invoked as d++, is a D-language interop tool that lets D source files directly include C and limited C++ headers, translating declarations through libclang and then compiling the generated D code.

### Project history

The public GitHub repository was created in August 2017. Its README describes the goal as giving D files the same practical ease of use as C or C++ #include workflows, including macro-heavy C APIs, and notes that the work was supported by Symmetry Investments.

### Adoption history

dpp's adoption has stayed centered on the D ecosystem rather than becoming a general-purpose systems tool. Its packaging in Homebrew and Nix makes it discoverable to D users who need C header interop without hand-maintaining bindings.

### How it is used

Users write quasi-D .dpp files containing #include directives, then run d++ so the tool expands declarations and selected macros into D code before invoking a D compiler.

### Why package nerds care

For package maintainers, dpp is a compact example of language-ecosystem tooling that depends on libclang and a host C preprocessor to bridge ABI-heavy native libraries into a less mainstream compiled language.

### Timeline

- 2017: atilaneves/dpp was created on GitHub.
- 2017 onward: the project documented success translating headers for libraries such as curl, OpenSSL, libvirt, Python.h, and others.
- 2024: the repository still showed maintenance activity, while remaining a niche D interop package.

### Related projects

- D language
- libclang
- dmd
- dub

### Sources

- <https://github.com/atilaneves/dpp>
- <https://raw.githubusercontent.com/atilaneves/dpp/master/README.md>
- <https://api.github.com/repos/atilaneves/dpp>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** dpp
- **Version Scheme:** 0
- **Revision:** 1
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** stable

## Other Package-Manager Records

- Nix - dpp: normalized package name match | nixpkgs package indexes: pkgs/by-name/dp/dpp/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1


## Related links

- [Source-control packages](https://pkg.so/source-control-tools/) - Belongs to a source-control command family.
- [Terminal utility packages](https://pkg.so/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://pkg.so/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Developer build packages](https://pkg.so/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [ldc](https://pkg.so/brew/ldc/) - Build dependency declared by Homebrew.
- [dub](https://pkg.so/brew/dub/) - Build dependency declared by Homebrew.
- [dtools](https://pkg.so/brew/dtools/) - Build dependency declared by Homebrew.
- [mcpp](https://pkg.so/brew/mcpp/) - Shares pkgdb curated category or tags: cli, developer-tools, preprocessor.
- [camlp5](https://pkg.so/brew/camlp5/) - Shares pkgdb curated category or tags: cli, developer-tools, preprocessor.
- [gpp](https://pkg.so/brew/gpp/) - Shares pkgdb curated category or tags: cli, developer-tools, preprocessor.
- [fypp](https://pkg.so/brew/fypp/) - Shares pkgdb curated category or tags: cli, developer-tools, preprocessor.
- [css-crush](https://pkg.so/brew/css-crush/) - Shares pkgdb curated category or tags: cli, developer-tools, preprocessor.
- [ratfor](https://pkg.so/brew/ratfor/) - Shares pkgdb curated category or tags: cli, developer-tools, preprocessor.
- [mdsh](https://pkg.so/brew/mdsh/) - Shares pkgdb curated category or tags: cli, developer-tools, preprocessor.
- [dscanner](https://pkg.so/brew/dscanner/) - Local package facts share a topical domain. Shared terms: cli, code, d-language, developer, developer-tools.
- [addlicense](https://pkg.so/brew/addlicense/) - Local package facts share a topical domain. Shared terms: cli, code, developer, developer-tools, headers.
- [isparta](https://pkg.so/npm/isparta/) - Local package facts share a topical domain. Shared terms: cli, code, developer, developer-tools, preprocessor.

## Combined YAML source

View the package source record on GitHub. [combined/dpp.yml](https://github.com/mxcl/pkgdb/blob/main/combined/dpp.yml)


## Sources

- pkg.so package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- pkgdb category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
