Skip to content

LLNL/dapper

DAPper

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.

Getting Started

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.

Download pre-built binary (Coming soon):

Soon we will provide pre-built dapper binaries on GitHub that can be downloaded.

Install from crates.io (Recommended for users):

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>

Build from Source (Recommended for developers):

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.

  1. Clone the DAPper git repository using git
git clone https://github.com/LLNL/dapper.git
cd dapper
  1. Build DAPper
cargo build --release

Note: Use cargo run -- in place of dapper for any commands listed in the Usage section below.

Usage

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.

Support

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.

Contributing

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.

License

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

About

Dependency Analysis Project - tools to discover implicit dependencies in source code and on systems

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 7