TopGit
GitHub Repo Review

Terraform: Infrastructure as Code Tool by HashiCorp

hashicorp/terraform

Terraform infrastructure as code is HashiCorp's tool for defining cloud and on-prem resources in declarative config files, then creating and changing them through a preview-then-apply workflow. This repo is Terraform core — the CLI and the graph engine — written in Go, with providers loaded as plugins from the Terraform Registry.

TTerraform: Infrastructure as Code Tool by HashiCorp — open-source GitHub repository preview
Quick verdict

Reach for Terraform if you manage infrastructure across more than one provider and want a single declarative workflow with a plan step that shows every change before it happens. Skip it if you're all-in on one cloud (that cloud's native IaC may fit better), or if the 2023 relicense to the Business Source License is a dealbreaker — in which case the OpenTofu fork is the drop-in answer.

Stars
★ 0
Forks
⑂ 0
Language
License
See repository
Topic
Updated
Jul 2026
Homepage
GitHub

The problem it solves

Clicking through cloud consoles to build infrastructure doesn't scale: changes aren't reviewed, environments drift apart, and nobody can reproduce last month's setup. Terraform's answer is to write infrastructure as code in text files you commit to git, so a change becomes a diff, a review, and a repeatable apply instead of a manual click-path.

What is it?

Terraform infrastructure as code is HashiCorp's tool that codifies APIs into declarative configuration files. You describe the resources you want in HCL, and Terraform works out the create, update, or destroy actions needed to reach that state. The README lists four core ideas: infrastructure as code, execution plans, a resource graph, and change automation. This repository holds Terraform core only — the CLI and the graph engine — while providers (AWS, Azure, GCP, and many others) are separate plugins pulled from the Terraform Registry.

Why it's getting attention

Terraform has become the default answer for multi-cloud infrastructure as code, and this repo sits at roughly 49,000 GitHub stars to match. It has also stayed in the news for a different reason: in 2023 HashiCorp relicensed Terraform from the open-source MPL 2.0 to the Business Source License, which is what this repo now ships under. That move pushed part of the community to create OpenTofu, a fork kept under the older open-source license — so Terraform remains a talking point on both technical and licensing grounds.

How this repository's GitHub stars have grown over time. Source: star-history.com.View the star history

Key features

  • Declarative config in HCL — you describe the desired end state and Terraform works out the steps to get there
  • An execution plan (terraform plan) that previews exactly what will be created, changed, or destroyed before you commit
  • A resource graph that maps dependencies and creates independent resources in parallel
  • Change automation: complex updates apply in the right order with minimal hand-holding, per the README
  • Provider plugin model — AWS, Azure, GCP, and third-party providers download automatically from the Terraform Registry
  • Config is versionable text, so infrastructure lives in git alongside application code

Best use cases

  • Provisioning and updating multi-cloud infrastructure from one declarative codebase
  • Reviewing infrastructure changes as a git diff before they touch anything live
  • Standing up reproducible dev, staging, and prod environments from the same config
  • Wiring infrastructure changes into CI so applies are automated and auditable

How to install / try

The README doesn't include install commands — it points to HashiCorp's getting-started guides and docs at developer.hashicorp.com. In practice Terraform ships as a single Go binary you put on your PATH, and HashiCorp offers a Terraform Associate certification for teams that want a formal learning path. Check the official docs for the current install method for your OS.

How to use

The typical Terraform infrastructure as code loop is: write your resources in .tf files (HCL), run the plan step to preview changes, then apply to make them real — the README describes this plan-then-apply flow as the way to avoid surprises. Providers are pulled automatically from the Terraform Registry. Exact commands aren't shown in the README; see developer.hashicorp.com for the full workflow.

Strengths

  • The plan step shows every change before it happens, which cuts blind-apply accidents
  • One declarative workflow spans many clouds and services instead of a different tool per provider
  • The resource graph parallelizes independent work, so large applies aren't fully serial
  • Config is plain text under version control — infrastructure changes get reviewed like any code
  • Big provider ecosystem via the Registry, including community-maintained providers

Limitations & risks

  • State management is the hard part: Terraform tracks reality in a state file, and sharing, locking, and protecting that state (remote backends) is real operational overhead — a corrupted or drifted state file leads to painful debugging
  • HCL and the plan/apply mental model have a learning curve; a plan that looks clean can still fail partway through apply and leave infrastructure half-changed
  • Licensing: HashiCorp relicensed Terraform from the open-source MPL 2.0 to the Business Source License in 2023, so this repo is source-available, not OSI open source — that restricts some competing commercial use and is why the OpenTofu fork exists
  • This repo is Terraform core only; provider coverage and quality vary, and you depend on the Terraform Registry and third-party maintainers for the pieces that actually talk to your cloud
View on GitHub

Alternatives

OpenTofu — the open-source (MPL) community fork of Terraform created after the BSL relicense, largely drop-in compatiblePulumi — infrastructure as code using general-purpose languages (TypeScript, Python, Go) instead of HCLAWS CloudFormation — AWS-native IaC if you're committed to a single cloudAnsible — provisioning and configuration management with a more procedural, agentless model

Who should try it — and who should skip

Teams running infrastructure across more than one cloud or service who want changes previewed and version-controlled will get the most out of Terraform. If you're locked to a single provider, that cloud's native IaC may be a simpler fit, and if the Business Source License is a problem for you, reach for OpenTofu instead — it tracks Terraform closely under the older open-source license.

Frequently asked questions

What is Terraform?

Terraform is HashiCorp's infrastructure as code tool. You describe cloud and on-prem resources in declarative HCL config files, and Terraform creates, changes, and versions them through a preview-then-apply workflow. This repo is Terraform core, written in Go; providers are separate plugins.

Is Terraform still open source?

Not in the OSI sense anymore. HashiCorp relicensed Terraform from MPL 2.0 to the Business Source License in 2023, so it is now source-available. The OpenTofu fork continues under the older open-source license.

What's the difference between Terraform and OpenTofu?

OpenTofu is a community fork of Terraform started after the 2023 relicense. It stays under the open-source MPL and aims to be drop-in compatible, while Terraform is developed by HashiCorp under the Business Source License.

How does Terraform actually apply changes?

You write config in .tf files, run the plan step to preview what will be created, changed, or destroyed, then apply to execute it. The README frames the execution plan as the way to avoid surprises when Terraform changes infrastructure.

Do I need to install providers separately?

No — Terraform downloads providers automatically from the Terraform Registry. This core repo contains the CLI and graph engine only; the AWS, Azure, GCP, and other providers are separate plugins.

Source & attribution

Based on the official hashicorp/terraform GitHub repository, including its README and project metadata.

Back to TopGit