Skip to content

Carina

A strongly typed infrastructure management tool written in Rust.

main.crn
provider aws {
  region = aws.Region.ap_northeast_1
}

let vpc = awscc.ec2.vpc {
  cidr_block = '10.0.0.0/16'
  enable_dns_support = true
}

awscc.ec2.subnet {
  vpc_id = vpc.vpc_id
  cidr_block = '10.0.1.0/24'
}
terminal
$ carina plan .
Planning...

+ awscc.ec2.vpc
  cidr_block: '10.0.0.0/16'
  enable_dns_support: true

+ awscc.ec2.subnet
  vpc_id: vpc.vpc_id
  cidr_block: '10.0.1.0/24'

Plan: 2 to create, 0 to update, 0 to delete.

Why Carina?

🔒

Type Safe

DSL validates at parse time. Catch errors before any infrastructure is touched.

📋

Effects as Values

Side effects are data. Inspect your Plan before execution, not after.

🔌

Pluggable Providers

AWS Cloud Control API, native AWS SDK, and more. One DSL, multiple backends.

Providers