ENRE (ENtity Relationship Extractor ) is a tool for extraction of code entity dependencies(relationships) from source code. The resolved dependency types include:
Dependency Type | Description |
---|---|
Import | a File imports a Package, Module, etc. |
Implement | A Class implements an Interface. |
Extend | A Class inherits a Class. |
Call | A function/Method calls A Function/method. |
Use | A Function/Method uses or reads a Variable. |
Set | A Function/Method uses or reads a Varibale. |
Parameter | A Funciton/Method has a Class type parameter. |
Return | A Function/Method returns a Class type value. |
ENRE supports analyzing source code written in Python, Go.
The released jar of ENRE is named as ENRE-v1.0.jar.
To execute ENRE-v1.0.jar, you should set up JAVA envionment. Please referer to Set up JAVA environment.
Now, everthing is already prepared well. Let's use ENRE to analyze source code. The usage command is:
java -jar <executable> <lang> <dir> <include-dir> <project-name>
- . The executable jar package of ENRE.
- . The language of source code that will be analyzed. It can be python or golang.
- . The path of the source code that will be analyzed.
- . The github url of source code. It only works when analyzing golang projects. Set it "null" when analyzing python projects.
- . A short alias name of the anayzed source code project.
Use ENRE to analyze a demo project "fire" written in Python:
#in linux platform
$java -jar ENRE-v1.0.jar python demo-projects/fire null fire
#in windows platform
$java -jar ENRE-v1.0.jar python demo-projects\fire null fire
After analysis, ENRE finally outputs the resovled entities and dependencies in JSON, XML, DOT files in new-generated fire-out/ directory.
Use ENRE to analyze a demo project "beego" written in Go:
#in linux platform
$java -jar ENRE-v1.0.jar golang demo-projects/beego github.com/astaxie/beego beego
#in windows platform
$java -jar ENRE-v1.0.jar golang demo-projects\beego github.com/astaxie/beego beego
After analysis, ENRE finally outputs the resovled entities and dependencies in JSON, XML, DOT files in new-generated beego-out/ directory.
[ENRE video introduction] (https://www.youtube.com/watch?v=BfXp5bb1yqc&t=43s)
Free Software, Hell Yeah!