Skip to content

NickLarsenNZ/pulumi-language-rust

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Pulumi for Rust

I have no idea what I'm doing.

See pulumi/pulumi#3622

Strategy

Off the cuff

  1. Implement a gRPC Server in Rust to see if that is simple enough
  2. Implement a bare minimum gRPC Client
  3. Make it resolve a single output
    use pulumi::pulumi;
    
    fn main() {
       pulumi.export("foo", "bar");
    }
  4. Make it apply a resource
    • Maybe use S3 bucket as an example
  5. Build up the sdk (like the imports in other languages)
    • pulumi::pulumi
    • pulumi::aws
    • ...
  6. Make macros
    • macro rules for resource dsls (inspired by clap)
      let cluster = aws::eks::cluster!(my_cluster =>
         (roleArn: "arn:aws::")
         (vpcConfig =>
             (vpc_id: "vpc-xyz")
             (subnet_ids: vec!["s-abc", "s-def", "s-ghi"])
         )
         (tags =>
             (Environment: "production")
             (Purpose: "monitoring")
         )
      )
    • proc macros for things like outputs/exports
      #[pulumi::main]
      async fn stack() {
         let bucket = ...;
      
         #[output]
         let bucket_name = bucket.name;
      }

See wiki as a guide

About

Might have a go at implementing Pulumi for Rust 🤷‍♂️

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages