  Hyrum's law states a common observation in the software industry: "With a
sufficient number of users of an API, it does not matter what you promise in
the contract: all observable behaviors of your system will be depended on by
somebody". Meanwhile, recent research results seem to contradict this
observation when they state that "for most APIs, there is a small number of
features that are actually used". We investigate this seeming paradox between
the observations in industry and the research literature, with a large scale
empirical study of client API relationships in one single ecosystem: Maven
Central.
  We study the 94 most popular libraries in Maven Central, as well as the
829,410 client artifacts that declare a dependency to these libraries and that
are available in Maven Central, summing up to 2.2M dependencies. Our analysis
indicates the existence of a wide spectrum of API usages, with enough clients,
most API types end up being used at least once. Our second key observation is
that, for all libraries, there is a small set of API types that are used by the
vast majority of its clients. The practical consequences of this study are
two-fold: (i) it is possible for API maintainers to find an essential part of
their API on which they can focus their efforts; (ii) API developers should
limit the public API elements to the set of features for which they are ready
to have users.
