7 releases (4 breaking)
new 0.5.0 | Oct 27, 2024 |
---|---|
0.4.1 | Oct 11, 2024 |
0.3.0 | Sep 21, 2024 |
0.2.0 | Sep 19, 2024 |
0.1.1 | Sep 16, 2024 |
#183 in Build Utils
431 downloads per month
Used in ubilerntui
59KB
339 lines
Aspirations
- Fetch licenses!
- Fast!
- Do it in the build step!
Workings
Crates that are compiled with your program are fetched via cargo metadata
.
License texts are read from the .cargo/registry/src
folder.
The data is then serialized and compressed.
Usage
Include Dependency
[!WARNING] Include this library as build dependency and as normal dependeny!
cargo add --build --features build license-fetcher
cargo add license-fetcher
Build Script
This library requires you to execute it for fetching licenses in a build script.
Creat a file called build.rs
in the root of your project and add following contents:
use license_fetcher::build_script::generate_package_list_with_licenses;
fn main() {
generate_package_list_with_licenses().write();
println!("cargo::rerun-if-changed=build.rs");
println!("cargo::rerun-if-changed=Cargo.lock");
println!("cargo::rerun-if-changed=Cargo.toml");
}
Main
Add following content to your main.rs
:
use license_fetcher::get_package_list_macro;
fn main() {
let packages = get_package_list_macro!();
println!("{}", packages);
}
Alternatives
license-retriever
Pros
- Also retrieves licenses in the build step and loads them into the program.
Cons
- Does not fetch licenses from loacal source files.
- Very slow.
- Does not compress licenses.
cargo-about
Pros
- Generates very nice html.
Cons
- Is not a library to access said data but rather a command line tool.
- Does not fetch licenses from loacal source files.
Screenshots
Display trait included 😉
Dependencies
~0.3–11MB
~67K SLoC