github.com/joey-fossa/fossa-cli@v0.7.34-0.20190708193710-569f1e8679f0/docs/integrations/adding-new-languages.md (about) 1 # Adding New Languages 2 3 ## How language integrations work 4 5 You can add support for a languages by creating an `Analyzer` for that language. 6 The `Analyzer` interface describes key functionality that FOSSA CLI relies on to 7 perform dependency analysis: 8 9 - `Discover` does initialization for the builder and gathers environment 10 context (e.g. binary paths). 11 - `Build` runs a default build of the module if the user requests it. 12 - `Analyze` returns a list of dependencies in a standard format. 13 - `IsBuilt` detects whether a module requires a build. 14 15 A `Dependency` is a component with a locator. Locators are built out of 3 parts: 16 - `Fetcher`: the component's source ecosystem (e.g. `npm` or `mvn`). 17 - `Package`: the package name in the ecosystem's registries. 18 - `Revision`: the revision (or version) name in the ecosystem's registries.