Switch branches/tags
0.0.x 0.2.x 0.3.x add-travis-windows andreypopp/debug-macos-failure andreypopp/fix-647 andreypopp/gen-bat-shell andreypopp/include-workflow andreypopp/informative-source-parse-errors andreypopp/lockfile-syntax andreypopp/test-win-padding andreypopp/try-ocurl appveyor/debug bootstrap bryphe/appveyor/cache-npm bryphe/appveyor/improve-caching bryphe/bugfix/eaccess-on-install bryphe/build/remove-bootstrapping bryphe/ci/azure-windows-caching bryphe/ci/platform-package-report bryphe/ci/test-slowtest bryphe/dependency/appveyor-esy-0.3.4 bryphe/dependency/ocaml-4.6.8 bryphe/dependency/upgrade-esy-bash-0.2.1 bryphe/docs/xplat-draft bryphe/esy-rewrite-prefix-1 bryphe/inline-fastreplacestring bryphe/investigation/debug-logging-windows-hacks bryphe/investigation/debug-logging bryphe/lockfile-fixes+slowtests bryphe/proto/esyi-unblocked-windows bryphe/proto/use-forked-submodule bryphe/prototype/unc-paths bryphe/test/slow-test-compilation bryphe/travis/windows-build bryphe/windows/bugfix-arch bryphe/windows/build-esyi bryphe/windows/build-validate-ocamlbuild-project bryphe/windows/e2e-tests bryphe/windows/esy-build-package-permission-denied bryphe/windows/esyi-bash-windows-commands bryphe/windows/forked-override-repo bryphe/windows/hack-resolve-command bryphe/windows/hook-up-slowtests bryphe/windows/lockfile-logging bryphe/windows/release-artifact-part-1 bryphe/windows/skip-flaky-test bryphe/windows/slow-tests bryphe/windows/solver bryphe/664/windows-out-of-space bryphe/667/repro docs/cleanup feat/pnp fix/linked-changes fix/memoize fix/no-package-name fix/opam-test-doc fix/slow-test intern-fastreplacestring master some-random-pr test/fast-slow windows-recovery
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
94 lines (56 sloc) 2.04 KB
id title

This serves as a glossary and an overview of concepts used in esy with links to detailed guide.

Project Sandbox

A directory with a manifest (usually package.json).

Almost every esy command operates in the context of a project sandbox.


A JSON file usually called package.json which contains information about esy package:

  • Package name and version.
  • Dependency declarations.
  • Commands needed to build and install package artifacts.
  • Other metadata

Support for esy.json

Usually a manifest is represented as package.json but to allow package.json to be used exclusively with npm esy allows manifests to be represented as esy.json files. In the case both package.json and esy.json are present in the sandbox esy will prefer esy.json over package.json.

Note that in case of a published (on npm registry) package esy won't be able to access esy.json and will only read metadata using npm registry API which is populated from package.json during publish time.

Maintainers will need to make sure they have crafted a correct package.json with metadata during publish process.


A unit of software distribution and the smallest unit which is esy operates on.

Root package

Package at the root of a sandbox.


Regular dependency

Development time dependency

Build time dependency

Peer dependency


A result of solving dependencies for a project sandbox.

Cached as esy.lock directory in the root of a project.

It is advised to commit this file to a project's repository so that the build environment is reproducible and doesn't depend on the current state of package registries (either npm or opam).


Build environment

Command environment

Test environment

Package exported environment

Build store

Global build store

Local build store

Package build location

Package installation location

Package stage location



OCamlfind library