flicense

Crates.ioflicense
lib.rsflicense
version0.4.0
created_at2025-01-27 19:01:18.336419+00
updated_at2025-09-20 14:29:10.088872+00
descriptionCLI for printing license information of rust cargo projects to the terminal.
homepage
repositoryhttps://github.com/WyvernIXTL/flicense-rs
max_upload_size
id1532740
size45,353
Adam McKellar (WyvernIXTL)

documentation

README

flicense

CLI for printing license information of rust cargo projects to the terminal.

Crates.io Version lib.rs link GitHub License dependency status

CLI for printing license information of rust cargo projects to the terminal.

Usage: flicense.exe [OPTIONS] [MANIFEST_DIR_PATH]

Arguments:
  [MANIFEST_DIR_PATH]  Optional path to manifest dir (where Cargo.toml and Cargo.lock are). Defaults to current dir

Options:
  -y, --yaml                Output as yaml
  -j, --json                Output as json
  -s, --short               Outputs only a short overview
      --stats               Outputs stats regarding how many licenses have been found and for what crates
  -o, --omit-license-text   Omits outputting license text
  -e, --encode <FILE PATH>  Write the package list encoded via bincode and compressed via miniz_oxide to the given file
  -l, --license             Outputs license information regarding this software and it's dependencies
  -h, --help                Print help
  -V, --version             Print version

Installation

Scoop (Windows)

scoop bucket add stupid-bucket https://github.com/WyvernIXTL/stupid-bucket
scoop install stupid-bucket/flicense

Homebrew (Linux/MacOS)

brew install wyvernixtl/tap2/flicense

Cargo Binstall (Windows/Linux/MacOS)

cargo binstall -y flicense

Binary Releases

Checkout the release page.

From Source

cargo install flicense

Usage

Prerequisite

  1. Have Cargo installed.
  2. Ensure the dependencies of the project for which you want to fetch licenses are downloaded (e.g., using cargo fetch).

Examples:

[!NOTE] The examples where created at different times.

Without Any Flag

flicense ./
flicense # no argument implies the current directory
# ================================================================================
#
# Package:     license-fetcher 0.6.2
# Description: Fetch licenses of dependencies at build time and embed them into your program.
# Authors:     - Adam McKellar <dev@mckellar.eu>
# Repository:  https://github.com/WyvernIXTL/license-fetcher
# SPDX Ident:  BSL-1.0
#
# --------------------------------------------------------------------------------
# Copyright Adam McKellar 2024
#
# Boost Software License - Version 1.0 - August 17th, 2003
#
# ...

YAML Without License Text

flicense  ./license-fetcher/ -o -y
# - name: license-fetcher
#   version: '0.6.2'
#   authors:
#   - Adam McKellar <dev@mckellar.eu>
#   description: Fetch licenses of dependencies at build time and embed them into your program.
#   homepage: null
#   repository: https://github.com/WyvernIXTL/license-fetcher
#   license_identifier: BSL-1.0
#   license_text: null
#
# ...

Short License Overview

flicense ./license-fetcher/ -s
# MIT OR Zlib OR Apache-2.0: miniz_oxide
# MIT: bincode, bincode_derive, virtue
# 0BSD OR MIT OR Apache-2.0: adler2
# BSL-1.0: license-fetcher

Stats

Stats can be very useful to identify packages, where license-fetcher failed to find any packages.

flicense ./license-fetcher/ --stats
# name                          license found
# license-fetcher               ✓
# adler2                        ✓
# bincode                       ✓
# bincode_derive                ✓
# miniz_oxide                   ✓
# unty                          ✓
# virtue                        ✓
#
# license found: 100%

Encode Licenses for Embedding During Build

The license information necessary for the use of license-fetcher can be fetched manually, instead of during the build script. This might be necessary if reproducible builds are required.

flicense --encode ./target/3rd-party-licenses.bincode.deflate
Commit count: 66

cargo fmt