This is mostly equivalent to
utils::available.packages() however it also
caches the full result. Additionally the cache can be assigned explicitly with
available_packages_set() and reset (cleared) with
character vector, the base URL(s) of the repositories to use.
character string, indicate which type of packages: see
type = "both" this will use the source repository.
utils::available.packages() for full documentation on the output format.