Access the information in installed Julia registries.
Julia's package manager stores package metadata in registries, which
consist of TOML files in a directory structure. For Julia 1.0 to 1.6
it was fairly straightforward to access this information with just a
TOML reader. Julia 1.7 introduced an option to locally store the
registry in an archive format (for very good performance reasons) and
restructured the package manager (Pkg
) code with an abstraction of
the registries (RegistryInstance
). Thus it is now better and easier
to use the RegistryInstance
abstraction, with the drawback that this
is considered an implementation detail in Pkg
and may change between
Julia minor versions.
The whole purpose of RegistryInstances is to provide the
RegistryInstance
abstraction without relying on Pkg
internals. The
advantages of getting it from here instead of from Pkg
are:
- Does not change with Julia minor versions.
- The key structs and functions are exported and part of the public API. Therefore breaking changes will follow semantic versioning principles.
- Works with Julia 1.6 and up.
Initially this was based on an exact copy of
Registry/registry_instance.jl
from Pkg
on August 12, 2021.
The public API consists of the structs
RegistryInstance
PkgInfo
PkgEntry
and the functions
reachable_registries
registry_info
compat_info
treehash
uuids_from_name
isyanked