README.md
 1  # Constructs
 2  
 3  > Software-defined persistent state
 4  
 5  ![Release](https://github.com/aws/constructs/workflows/Release/badge.svg)
 6  [![npm version](https://badge.fury.io/js/constructs.svg)](https://badge.fury.io/js/constructs)
 7  [![PyPI version](https://badge.fury.io/py/constructs.svg)](https://badge.fury.io/py/constructs)
 8  [![NuGet version](https://badge.fury.io/nu/Constructs.svg)](https://badge.fury.io/nu/Constructs)
 9  [![Maven Central](https://maven-badges.herokuapp.com/maven-central/software.constructs/constructs/badge.svg?style=plastic)](https://maven-badges.herokuapp.com/maven-central/software.constructs/constructs)
10  
11  ## What are constructs?
12  
13  Constructs are classes which define a "piece of system state". Constructs can be composed together to form higher-level building blocks which represent more complex state.
14  
15  Constructs are often used to represent the _desired state_ of cloud applications. For example, in the AWS CDK, which is used to define the desired state for AWS infrastructure using CloudFormation, the lowest-level construct represents a _resource definition_ in a CloudFormation template. These resources are composed to represent higher-level logical units of a cloud application, etc.
16  
17  ## Contributing
18  
19  This project has adopted the [Amazon Open Source Code of
20  Conduct](https://aws.github.io/code-of-conduct).
21  
22  We welcome community contributions and pull requests. See our [contribution
23  guide](./CONTRIBUTING.md) for more information on how to report issues, set up a
24  development environment and submit code.
25  
26  ## License
27  
28  This project is distributed under the [Apache License, Version 2.0](./LICENSE).