🔎 Feluda is a Rust-based command-line tool that analyzes the dependencies of a project, notes down their licenses, and flags any permissions that restrict personal or commercial usage.
- Parse your project to identify dependencies and their licenses.
- Classify licenses into permissive, restrictive, or unknown categories.
- Flag dependencies with licenses that may restrict personal or commercial use.
- Output results in plain text, JSON or TUI formats. There's also a gist format which is available in strict mode to output a single line only.
If your fav language or framework isn't supported, feel free to open an feature request issue! 👋
- Rust installed on your system.
If you already had it, make sure it's up-to-date and update if needed. (Optional) Set rust path if not set already.
cargo install feluda
Run the tool in the project directory:
feluda
feluda --path /path/to/project/
- Default: Plain text.
- JSON: Use the
--json
flag for JSON output.
feluda --json
Sample Output for a sample cargo.toml file containing serde
and tokio
dependencies:
[
{
"name": "serde",
"version": "1.0.151",
"license": "MIT",
"is_restrictive": false
},
{
"name": "tokio",
"version": "1.0.2",
"license": "MIT",
"is_restrictive": false
}
]
For detailed information about each dependency:
feluda --verbose
In case you strictly need only the restrictive dependencies:
feluda --strict
We've an awesome ✨ TUI mode available to browse through the dependencies in a visually appealing way as well:
feluda --gui
Checkout contributing guidelines if you are looking to contribute to this project.
Feluda is licensed under the MIT License with Commons Clause.
Happy coding with Feluda! 🚀