Announcing the fpm-find plugin for searching fortran-lang's package index

Today I made the first public release of the fpm plugin fpm-find 0.1.0. Weighing in at 765 lines, including unit tests, it’s a minimal viable product that takes advantage of the simple structure of fortran-lang’s package_index.yml file so that a complete YAML parser is not required as long as certain properties of the file stay the same, which hopefully is a safe bet now that the package index has grown to include over 260 packages.

Many thanks to @bonachea for inspiring this by pointing me to the package index, to @jwallwork23 for helpful discussions about the index, to @milancurcic for suggesting making this tool an fpm plugin, and to @certik for additional encouragement!

The structure of an fpm-find command is as follows:

fpm find <search-string> [--url|-u] [--name|-n] [--case|-c]

where users replace <search-string> with text to find in the package index. The remaining arguments are optional and can be used in any combination. Examples follow:

fpm find numerical         # search all package data for "numerical"
fpm find julienne --name   # search package names for "julienne"
fpm find nasa --url --name # search package names and URLs for "nasa"
fpm find Berkeley -u -c   # case-sensitive search for "Berkeley" in package URLs

I imagine that fpm-find’s relationship to the package index is analogous to the fpm-search plugin’s relationship to the fpm registry so some might view fpm-find as redundant. I submitted fpm issue #1148 in May 2025 describing my unsuccessful attempts to use the registry.

Also, I imagine fpm-find could eventually be absorbed into fpm to take advantage of additional infrastructure (e.g., Windows support) and to enable new functionality (e.g., enabling fpm install <package-name> to function similar to other package managers except that it would build from source. Incorporation into fpm might make a good Google Summer of Code project for someone. In order to facilitate that possible outcome, I asked my employer to apply an MIT license like fpm. Fortunately, our Intellectual Property Office honored my request.

Although I can’t promise a lot of time for maintenance, feedback is welcome via GitHub issues. Contributions via pull requests are especially welcome. I’d be happy to give an introduction to the internals of fpm-find to anyone interested in contributing.

11 Likes