DAPper helps identify the software packages installed on a system, and expose implicit dependencies in source code.
The main tool for end users parses source code to determine packages that a C/C++ codebase depends on. In addition, datasets mapping file names to packages that install them for various ecosystems are provided. The tools used to create those datasets are also available in this repository.
Note
DAPper is very early in development -- things may not work as expected or be implemented yet! Feel free to start a discussion in https://github.com/LLNL/dapper/discussions for things you'd like to see.
Soon we will provide pre-built dapper binaries on GitHub that can be downloaded.
For ease of use, we recommend using rustup.rs which is a Rust installer and version management tool. Install rustup by following their installation instructions.
After that, install DAPper with (replacing with the version to install):
cargo install dapper@<version>For ease of use, we recommend using rustup.rs which is a Rust installer and version management tool. Install rustup by following their installation instructions.
- Clone the DAPper git repository using
git
git clone https://github.com/LLNL/dapper.git
cd dapper- Build DAPper
cargo build --releaseNote: Use cargo run -- in place of dapper for any commands listed in the Usage section below.
Install datasets using dapper db install ubuntu-noble, dapper db install pypi, and optionally dapper db install nuget.
Run dapper <source code directory or file>. The output will be the #included files from each C/C++ and Python source code file found.
Full user guides for DAPper are available online and in the docs directory.
For questions or support, please create a new discussion on GitHub Discussions, or open an issue for bug reports and feature requests.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.
For more information on contributing see the CONTRIBUTING file.
DAPper is released under the MIT license. See the LICENSE and NOTICE files for details. All new contributions must be made under this license.
SPDX-License-Identifier: MIT
LLNL-CODE-871441