GNU-devel ELPA - repology


Repology API access via Elisp
repology-, 2021-Jan-28, 80.0 KiB
Nicolas Goaziou <>
Home page
Browse repository
CGit or Gitweb

To install this package, run in Emacs:

M-x package-install RET repology RET

Full description

This package provides tools to query Repology API
(<>), process results, and display them.

The results of a query revolve around three types of objects:
projects, packages and problems.  Using this library, you can find
projects matching certain criteria, packages in a given project,
and possible problems in some repository.  See `repology-search-projects',
`repology-lookup-project', and `repology-report-problems'.
Projects-related requests are limited to `repology-projects-limit'.
All requests are cached during `repology-cache-duration' seconds.

By default, only projects recognized as free are included in the search
results.  You can control this behavior with the variable
`repology-free-projects-only'.  The function `repology-check-freedom'
is responsible for guessing if a project, or a package, is free.

You can then access data from those various objects using dedicated
accessors.  See, for example, `repology-project-name',
`repology-project-packages', `repology-package-field', or

You can also decide to display (a subset of) results in a tabulated
list.  See `repology-display-package', `repology-display-packages',
`repology-display-projects' and `repology-display-problems'.  You
can control various aspects of the display, like the faces used
or the columns shown (see `repology-display-packages-columns',
`repology-display-projects-columns' and `repology-display-problems-columns').
When projects or packages are displayed, pressing <RET> gives you more
information about the item at point, whereas pressing <F> reports their
freedom status.

For example, the following expression displays all outdated projects
named after "emacs" and containing a package in GNU Guix repository
that I do not ignore:

    (seq-filter (lambda (project)
                  (not (member (repology-project-name project)
                 :search "emacs" :inrepo "gnuguix" :outdated "on")))

Eventually, this library provides an interactive function with
a spartan interface wrapping this up: `repology'.  Since it builds
and displays incrementally search filters, you may use it as
a template to create your own queries.

Known issues:

- The library has no notion of distribution "family", since this
  doesn't appear in the API.  As a consequence, display functions
  cannot compute the "spread" of a project.  It falls back to the
  number of packages in the project instead.
- It does not handle "maintainers" queries.
- It is synchronous.  Don't go wild with `repology-projects-limit'!

Old versions

repology- KiB
repology- KiB
repology-0.0.20210123.104702.tar.lz2021-Jan-2315.8 KiB
repology-0.0.20210122.194312.tar.lz2021-Jan-2215.7 KiB
repology-0.0.20210120.182128.tar.lz2021-Jan-2015.7 KiB
repology-0.0.20210119.132756.tar.lz2021-Jan-1915.7 KiB
repology-0.0.20210119.85753.tar.lz2021-Jan-1915.6 KiB
repology-0.0.20210117.133602.tar.lz2021-Jan-1715.3 KiB
repology-0.0.20210116.234451.tar.lz2021-Jan-1715.2 KiB
repology-0.0.20210116.205939.tar.lz2021-Jan-1615.2 KiB