# Glossary

This is a short list of Nx-specific terms that will help you understand the rest of the documentation.

## Terms

### Application

A [project](#project) that can run on its own. Generally uses [libraries](#library).

> See: [Applications and Libraries](/concepts/more-concepts/applications-and-libraries)

### Buildable Library

A [library](#library) that has a `build` [target](#target). Some libraries can be generated with a `build` target using the `--buildable` flag.

> See: [Publishable and Buildable Nx Libraries](/concepts/more-concepts/buildable-and-publishable-libraries)

### Cache

A mechanism for saving the output of a calculation so it can be replayed later without actually performing the calculation again.

> See: [Cache Task Results](/core-features/cache-task-results)

### Cache Hit

When the [cache inputs](#cache-inputs) for a [task](#task) match an existing entry in the [cache](#cache) and the [cache outputs](#cache-outputs) can be replayed without actually running the task.

> See: [Cache Task Results](/core-features/cache-task-results)

### Cache Inputs

Everything that might change the output of a [task](#task). This may include source code, task options, environment variables and other settings determined at run time. These values are combined as a hash to serve as a key for an entry in the [cache](#cache).

> See: [Customizing Inputs and Named Inputs](/concepts/more-concepts/customizing-inputs)

### Cache Miss

When the [cache inputs](#cache-inputs) for a [task](#task) do not match an existing entry in the [cache](#cache) and the task needs to be executed.

> See: [Cache Task Results](/core-features/cache-task-results)

### Cache Outputs

The terminal output and any file artifacts created by running a [task](#task). These values are stored in the [cache](#cache) to be replayed later.

> See: [Outputs Reference](/reference/project-configuration#outputs)

### Command

Anything you run in the terminal. An example command that invokes a [task](#task) is `nx build my-app`.

> See: [Run Tasks](/core-features/run-tasks)

### Configurations

A set of preconfigured options for a [target](#target) that should be enabled altogether. For example, a `production` configuration would set all the options needed for a build that could be deployed to production.

> See: [Use Executor Configurations](/core-features/plugin-features/use-task-executors#use-executor-configurations)

### Distributed Cache

A [cache](#cache) that can be shared between all developers using the repo and the CI system.

> See: [Share Your Cache](/core-features/remote-cache)

### Distributed Task Execution

A system for running [tasks](#task) in CI across multiple agent processes in the most efficient way possible.

> See: [Distribute Task Execution](/core-features/distribute-task-execution)

### Executor

A script that performs some action on your code. This can include building, linting, testing, serving and many other actions. A [target](#target) configuration specifies an executor and a set of options. Executors can be found in [plugins](#plugin).

> See: [Use Task Executors](/core-features/plugin-features/use-task-executors)

### Generator

A script that creates or modifies your code. Generators can be found in [plugins](#plugin).

> See: [Use Code Generators](/core-features/plugin-features/use-code-generators)

### Graph

A computer science concept that consists of nodes connected by edges. In the Nx context, there are two graphs: the [project](#project) graph which describes dependencies between projects and the [task](#task) graph which describes dependencies between tasks.

> See: [Explore the Graph](/core-features/explore-graph)

### Integrated Repository

A repository using Nx [plugins](#plugin) to boost efficiency and ease of maintenance.

> See: [Integrated Repos vs. Package-Based Repos](/concepts/integrated-vs-package-based)

### Library

A [project](#project) that is used by [applications](#application) or other [libraries](#library).

> See: [Applications and Libraries](/concepts/more-concepts/applications-and-libraries)

### Monolith

A large [application](#application) that is difficult to separate into smaller pieces.

> See: [Applications and Libraries](/concepts/more-concepts/applications-and-libraries)

### Monorepo

A repository with multiple [projects](#project).

> See: [monorepo.tools](https://monorepo.tools)

### Nested Project

A [project](#project) that is located in a sub-folder of another project. This was made possible in Nx 15.3.

### Nx Cloud

A service that provides [distributed caching](#distributed-cache) and [distributed task execution](#distributed-task-execution).

> See: [What is Nx Cloud?](/nx-cloud/intro/what-is-nx-cloud)

### Package

A [project](#project). It is sometimes published as an npm package.

### Package-based Repository

A repository using Nx without [plugins](#plugin) that prioritizes the independence of the separate [packages](#package). Nx is added to the repo without significantly affecting the file structure or build settings.

> See: [Integrated Repos vs. Package-Based Repos](/concepts/integrated-vs-package-based)

### Plugin

A set of [executors](#executor), [generators](#generator) and other code that extends the functionality of Nx. May be installed from a package manager like NPM or developed directly in the repository.

> See: [Create Your Own Plugin](/extending-nx/intro/getting-started)

### Polyrepo

Related [projects](#project) spread across multiple repositories.

### Project

The unit of code on which a [task](#task) can be run. A project can be an [application](#application) or a [library](#library).

> See: [Applications and Libraries](/concepts/more-concepts/applications-and-libraries)

### Publishable Library

A [library](#library) that has a `publish` [target](#target). Some libraries can be generated with a `publish` target using the `--publishable` flag.

> See: [Publishable and Buildable Nx Libraries](/concepts/more-concepts/buildable-and-publishable-libraries)

### Root-Level Project

A [project](#project) that has its own root folder at the root of the repository. Every other project in the repo is a [nested project](#nested-project).

### Standalone Repository

A repository with a single [application](#application) at the [root level](#root-level-project). This set up is made possible in Nx 15.3.

### Target

The name of an action taken on a [project](#project).

> See: [Run Tasks](/core-features/run-tasks)

### Task

An invocation of a [target](#target) on a specific [project](#project).

> See: [Run Tasks](/core-features/run-tasks)

### Task Pipeline

The set of dependencies between [tasks](#task) that ensure that tasks are run in the correct order.

> See: [Task Pipeline Configuration](/concepts/task-pipeline-configuration)

### Workspace

A git repository. An Nx workspace is a git repository using Nx.
