Daipendency
Daipendency extracts public API documentation from a library and outputs it in an LLM-friendly format. The endgame is to provide AI coding agents with all the context they need to use a particular dependency, but for now you can just use it manually on the CLI.
This project was inspired by Aider's repository map.
Features
- Outputs public symbols (e.g. functions) only.
- Outputs function signatures and documentation, but not the implementation.
- Only supports Rust for now, but any language supported by tree-sitter can be supported.
- Reads the source code directly, so it doesn't process the HTML of the generated documentation, thus keeping the output clean.
CLI Usage
daipendency extract-dep: Extract the documentation of a dependency in a crate
To extract the documentation of a dependency of the crate in the current directory, pass the name of the dependency. For example:
Alternatively, you can specify the path to the crate that contains the dependency with the --dependant option. For example:
This command will honour the version of the dependency specified in the Cargo.toml file.
daipendency extract: Extract the documentation of a crate
To extract the documentation from a library, pass the path to the library. For example:
Explicitly specifying the language is recommended, as it can be slow to auto-detect. For example:
Library Usage
To use Daipendency in your own Rust project, add it as a dependency and call the generate_documentation function. For example:
use ;
use Path;
let path = new;
match generate_documentation
You can optionally set language to None to auto-detect the language, but this can get slow as we add more languages.
Development
Adding Support for a New Language
To add support for a new language, you need to:
- Implement the
daipendency_extractor::Extractortrait for the language. See daipendency-extractor-rust for an example. - Release your crate. Note that only MIT- or Apache-2.0-licensed crates are eligible for inclusion in Daipendency.
- Integrate your crate in
src/languages.rs.