Liking cljdoc? Tell your friends :D

Latest Version License Open Issues Vulnerabilities

asf-cat logo: Apache Software Foundation feather logo with a cat in silhouette reaching towards it


A micro library that provides a Clojure implementation of the Apache Software Foundation's 3rd Party License Policy.

System Requirements

This library uses lice-comb, so has the same system requirements as that library.


asf-cat is available as a Maven artifact from Clojars.

Trying it Out

Clojure CLI

$ clj -Sdeps '{:deps {com.github.pmonks/asf-cat {:mvn/version "RELEASE"}}}'


$ lein try com.github.pmonks/asf-cat


$ deps-try com.github.pmonks/asf-cat


(require '[asf-cat.api :as asf])

;; Checking the category of a single SPDX license identifier
(asf/license-category "Apache-2.0")
;=> :category-a

(asf/license-category "EPL-1.0")
;=> :category-b

(asf/license-category "GPL-3.0")
;=> :category-x

(asf/license-category "invalid-license-identifier")
;=> :uncategorised

;; Checking the category of an SPDX license expression
(asf/expression-category "Apache-2.0 OR GPL-3.0 WITH Classpath-exception-2.0")
;=> :category-a

(asf/expression-category "Apache-2.0 AND GPL-3.0 WITH Classpath-exception-2.0")
;=> :category-x

;; Non-standard license "identifiers"
(asf/license-category "Public domain")
;=> :category-a-special

(asf/license-category "LicenseRef-lice-comb-PROPRIETARY-COMMERCIAL")
;=> :category-x


API documentation is available here.

An FAQ is available here.

Contributor Information

Contributing Guidelines

Bug Tracker

Code of Conduct

Developer Workflow

This project uses the git-flow branching strategy, and the permanent branches are called release and dev. Any changes to the release branch are considered a release and auto-deployed (JARs to Clojars, API docs to GitHub Pages, etc.).

For this reason, all development must occur either in branch dev, or (preferably) in temporary branches off of dev. All PRs from forked repos must also be submitted against dev; the release branch is only updated from dev via PRs created by the core development team. All other changes submitted to release will be rejected.

Build Tasks

asf-cat uses You can get a list of available tasks by running:

clojure -A:deps -T:build help/doc

Of particular interest are:

  • clojure -T:build test - run the unit tests
  • clojure -T:build lint - run the linters (clj-kondo and eastwood)
  • clojure -T:build ci - run the full CI suite (check for outdated dependencies, run the unit tests, run the linters)
  • clojure -T:build install - build the JAR and install it locally (e.g. so you can test it with downstream code)

Please note that the deploy task is restricted to the core development team (and will not function if you run it yourself).


Copyright © 2021 Peter Monks

Distributed under the Apache License, Version 2.0.

SPDX-License-Identifier: Apache-2.0

The Apache "feather" logo is trademarked by the Apache Software Foundation and distributed under the Apache License, Version 2.0.

The Clip Art Silhouette Of A Cat Reaching Into The Sky image is distributed under the terms of the license documented at

Can you improve this documentation?Edit on GitHub

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close