---
page_title: Publishing Modules
description: A module is a container for multiple resources that are used together.
---

# Publishing Modules

If you've built a module that you intend to be reused, we recommend
[publishing the module](/registry/modules/publish) on the
[Terraform Registry](https://registry.terraform.io). This will version
your module, generate documentation, and more.

Published modules can be easily consumed by Terraform, and users can
[constrain module versions](/language/modules/syntax#version)
for safe and predictable updates. The following example shows how a caller
might use a module from the Terraform Registry:

```hcl
module "consul" {
  source = "hashicorp/consul/aws"
}
```

If you do not wish to publish your modules in the public registry, you can
instead use a [private registry](/registry/private) to get
the same benefits.

We welcome contributions of Terraform modules from our community members, partners, and customers. Our ecosystem is made richer by each new module created or an existing one updated, as they reflect the wide range of experience and technical requirements of the community that uses them. Our cloud provider partners often seek to develop specific modules for popular or challenging use cases on their platform and utilize them as valuable learning experiences to empathize with their users. Similarly, our community module developers incorporate a variety of opinions and use cases from the broader Terraform community. Both types of modules have their place in the Terraform registry, accessible to practitioners who can decide which modules best fit their requirements.

## Distribution via other sources

Although the registry is the native mechanism for distributing re-usable
modules, Terraform can also install modules from
[various other sources](/language/modules/sources). The alternative sources
do not support the first-class versioning mechanism, but some sources have
their own mechanisms for selecting particular VCS commits, etc.

We recommend that modules distributed via other protocols still use the
[standard module structure](/language/modules/develop/structure) so that they can
be used in a similar way as a registry module or be published on the registry
at a later time.
