8 stable releases
new 1.4.0 | Feb 11, 2025 |
---|---|
1.3.0 | Feb 10, 2025 |
1.2.3 | Jan 29, 2025 |
#29 in Development tools
655 downloads per month
46KB
996 lines
Feluda
🔎 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.
👋 It's still highly experimental, but fast iterating. Welcoming contributors and support to help bring out this project even better!
Features
- 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.
Support Languages
If your fav language or framework isn't supported, feel free to open an feature request issue! 👋
Installation
Official Distribution 🎉:
Rust
Prerequisites
- 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.
Install
cargo install feluda
Community Maintained 🙌:
Arch Linux (maintained by @adamperkowski)
feluda is available in the AUR. You can install it using an AUR helper (e.g. paru):
paru -S feluda
NetBSD (maintained by @0323pin)
On NetBSD a package is available from the official repositories. To install it, simply run:
pkgin install feluda
Track releases on github releases or via release feed.
Build from Source (advanced users)
Note: This might have experimental features which might not work as intended.
Clone and Build
First, clone the repository:
git clone https://github.com/anistark/feluda.git
cd feluda
Then, build the project using Cargo:
cargo build --release
Finally, to make feluda
available globally, move the binary to a directory in your PATH. For example:
sudo mv target/release/feluda /usr/local/bin/
Usage
Basic Usage
Run the tool in the project directory:
feluda
Specify a Path to your project directory
feluda --path /path/to/project/
Output Format
- 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
}
]
Verbose Mode
For detailed information about each dependency:
feluda --verbose
Strict Mode
In case you strictly need only the restrictive dependencies:
feluda --strict
TUI Mode
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.
Currently, using choosealicense license directory for source of truth.
License
Feluda is licensed under the MIT License.
Happy coding with Feluda! 🚀
Dependencies
~18–32MB
~504K SLoC