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
AWSCC Provider AWS Cloud Control API — EC2, S3, IAM, CloudWatch Logs
AWS Provider AWS SDK — EC2, S3, STS