Package management is a staple in any programming discipline. The ethPM specification allows developers to package up and distribute their smart contracts in a machine-readable format that is easily consumable by any tooling that supports the spec. Quick and secure transportation of smart contracts between tooling allows developers to easily build off the existing standards and distribute their own contracts for others to build from.
An ethPM package represents the idea of a smart contract; from a single smart contract file, to a deployed contract instance, to a complex system of smart contracts, and everything in between. At its core, an ethPM package is a JSON object containing the ABI, source code, bytecode, deployment data and any other information that combines together to compose the smart contract idea. The ethPM specification defines a schema to store all of this data in a structured JSON format, enabling quick and efficient transportation of smart contract ideas between tools and frameworks which support the specification.
ethPM has similar goals to most package managers found in any given programming language.
- Easily import and build upon core ideas written by others.
- Distribute the ideas that you've written and/or deployed, making them easily consumable for tooling and the community at large.