RegistryInstances.jl

Access the information in installed Julia registries.
Author GunnarFarneback
Popularity
9 Stars
Updated Last
1 Year Ago
Started In
August 2021

RegistryInstances

Access the information in installed Julia registries.

Background

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.

About this Package

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.

Public API

The public API consists of the structs

  • RegistryInstance
  • PkgInfo
  • PkgEntry

and the functions

  • reachable_registries
  • registry_info
  • compat_info
  • treehash
  • uuids_from_name
  • isyanked