Skip to content

Latest commit

 

History

History
32 lines (25 loc) · 1.5 KB

registry-v1.md

File metadata and controls

32 lines (25 loc) · 1.5 KB

ETS Registry

NOTE: This registry format is deprecated in favor of the new version

The registry is an ETS table serialized with ets:tab2file/1. Clients consuming the registry entries should always match on only the front of a list, as new elements may be added to the tail in the future.

Below is the layout of the table.

  • {'$$version$$', Version} - the registry version

    • Version: integer, incremented on breaking changes
  • {Package, [Versions]} - all releases of a package

    • Package: binary string
    • Versions: list of semver versions as binary strings
  • {{Package, Version}, [Deps, InnerChecksum, BuildTools]} - a package release's dependencies

    • Package: binary string
    • Version: binary string semver version
    • Deps: list of dependencies [Dep1, Dep2, ..., DepN]
      • Dep: [Name, Requirement, Optional, App]
        • Name: binary package name
        • Requirement: binary Elixir version requirement
        • Optional: boolean, true if it's an optional dependency
        • App: binary, OTP application name
    • InnerChecksum: binary hex encoded sha256 checksum of package, see Package Tarball
    • BuildTools: list of build tool names as binary strings