Interactive Terraform visualization. State and configuration explorer.

Rover - Terraform Visualizer

Rover is a Terraform visualizer.

In order to do this, Rover:

  1. generates a plan file and parses the configuration in the root directory.
  2. parses the plan and configuration files to generate three items: the resource overview (rso), the resource map (map), and the resource graph (graph).
  3. consumes the rso, map, and graph to generate an interactive configuration and state visualization hosts on localhost:9000.

Feedback (via issues) and pull requests are appreciated!

Rover Screenshot

Quickstart

The fastest way to get up and running with Rover is through Docker.

Run the following command in any Terraform workspace to generate a visualization. This command copies all the files in your current directory to the Rover container and exposes port :9000.

$ docker run --rm -it -p 9000:9000 -v $(pwd):/src im2nguyen/rover
2021/07/02 06:46:23 Starting Rover...
2021/07/02 06:46:23 Initializing Terraform...
2021/07/02 06:46:24 Generating plan...
2021/07/02 06:46:25 Parsing configuration...
2021/07/02 06:46:25 Generating resource overview...
2021/07/02 06:46:25 Generating resource map...
2021/07/02 06:46:25 Generating resource graph...
2021/07/02 06:46:25 Done generating assets.
2021/07/02 06:46:25 Rover is running on localhost:9000

Once Rover runs on localhost:9000, navigate to it to find the visualization!

Standalone mode

Standalone mode generates a rover.zip file containing all the static assets.

$ docker run --rm -it -p 9000:9000 -v $(pwd):/src im2nguyen/rover -standalone true

After all the assets are generated, unzip rover.zip and open rover/index.html in your favorite web browser.

Set environment variables

Use --env or --env-file to set environment variables in the Docker container. For example, you can save your AWS credentials to an .env file.

.env ">
$ printenv | grep "AWS" > .env

Then, add it as environment variables to your Docker container with --env-file.

$ docker run --rm -it -p 9000:9000 -v $(pwd):/src --env-file ./.env im2nguyen/rover

Define tfvars and Terraform variables

Use -tfVarsFile or -tfVar to define variables. For example, you can run the following in the example/random-test directory to overload variables.

$ docker run --rm -it -p 9000:9000 -v $(pwd):/src im2nguyen/rover -tfVarsFile test.tfvars -tfVar max_length=4

Installation

You can download Rover binary specific to your system by visiting the Releases page. Download the binary, unzip, then move rover into your PATH.

Build from source

You can build Rover manually by cloning this repository, then building the frontend and compiling the binary. It requires Go v1.16+ and npm.

Build frontend

First, navigate to the ui.

$ cd ui

Then, install the dependencies.

$ npm install

Finally, build the frontend.

$ npm run build

Compile binary

Navigate to the root directory.

$ cd ..

Compile and install the binary. Alternatively, you can use go build and move the binary into your PATH.

$ go install

Build Docker image

First, compile the binary for linux/amd64.

$ env GOOS=linux GOARCH=amd64 go build .

Then, build the Docker image.

$ docker build . -t im2nguyen/rover --no-cache

Basic usage

This repository contains two example Terraform configurations in example.

Navigate into random-test example configuration. This directory contains configuration that showcases a wide variety of features common in Terraform (modules, count, output, locals, etc) with the random provider.

$ cd example/random-test

Run Rover. Rover will start running in the current directory and assume the Terraform binary lives in /usr/local/bin/terraform by default.

$ rover
2021/06/23 22:51:27 Starting Rover...
2021/06/23 22:51:27 Initializing Terraform...
2021/06/23 22:51:28 Generating plan...
2021/06/23 22:51:28 Parsing configuration...
2021/06/23 22:51:28 Generating resource overview...
2021/06/23 22:51:28 Generating resource map...
2021/06/23 22:51:28 Generating resource graph...
2021/06/23 22:51:28 Done generating assets.
2021/06/23 22:51:28 Rover is running on localhost:9000

You can specify the working directory (where your configuration is living) and the Terraform binary location using flags.

$ rover -workingDir "example/eks-cluster" -tfPath "/Users/dos/terraform"

Once Rover runs on localhost:9000, navigate to it to find the visualization!

Comments
  • runtime error: invalid memory address or nil pointer dereference (Mislabeled Resource Type)

    runtime error: invalid memory address or nil pointer dereference (Mislabeled Resource Type)

    Posting this for now as I continue to debug, but maybe others are seeing similar issues.

    Overview: Runtime error when attempting to generate graph from provided plan that points to an invalid memory address reference. Upon further debugging, it appears to be related to a Data source type being labeled as a Resource source type. At the moment I am unsure of how to reproduce.

    Release Version: 3.0

    ERROR Message:

    > rover -planPath plan.out
    2022/01/31 09:48:08 Starting Rover...
    2022/01/31 09:48:08 Using provided plan...
    2022/01/31 09:48:12 Generating resource overview...
    2022/01/31 09:48:12 Generating resource map...
    panic: runtime error: invalid memory address or nil pointer dereference
    [signal SIGSEGV: segmentation violation code=0x1 addr=0x48 pc=0x174c28e]
    
    goroutine 1 [running]:
    main.(*rover).GenerateModuleMap(0xc000187680, 0xc00009fdd0, 0xc00036ac40, 0x38)
    	/Users/joseestrada/rover/map.go:225 +0x1dae
    main.(*rover).GenerateModuleMap(0xc000187680, 0xc00009e5a0, 0xc0003a8cf0, 0x25)
    	/Users/joseestrada/rover/map.go:253 +0x2357
    main.(*rover).GenerateModuleMap(0xc000187680, 0xc00050e750, 0xc000399170, 0x12)
    	/Users/joseestrada/rover/map.go:253 +0x2357
    main.(*rover).GenerateModuleMap(0xc000187680, 0xc000535b88, 0x0, 0x0)
    	/Users/joseestrada/rover/map.go:253 +0x2357
    main.(*rover).GenerateMap(0xc000187680, 0x0, 0x0)
    	/Users/joseestrada/rover/map.go:335 +0x1ee
    main.(*rover).generateAssets(0xc000187680, 0xc000187680, 0x2)
    	/Users/joseestrada/rover/main.go:193 +0x130
    main.main()
    	/Users/joseestrada/rover/main.go:138 +0xea5
    

    Additional Context: From what I gather and understand, it appears that my generated Terraform Plan is causing a runtime error due to a resource being mislabeled. I believe that a Data source is being labeled as a Resource type and thus causing the error.

    This error is happening during the generating of the resource map where it appears to be setting the file Name of the resource as well as its line number (code link). To help deep dive into the issue a bit more I modified the code locally which is described by the following code block.

    note: forgive my naming of things in advance. I am somewhat confused still about the difference between states and configs.

    			if configured {
    				var fname string
    				ind := fmt.Sprintf("%s.%s", re.ResourceType, re.Name)
    
    				log.Printf("Resource State Type: %s",rs.Type)
    
    				if rs.Type == ResourceTypeData {
    					
    					log.Println("Resource State Type is Data")
    					
    					ind = fmt.Sprintf("data.%s", ind)
    					fname = filepath.Base(configs[parentConfig].Module.DataResources[ind].Pos.Filename)
    					re.Line = &configs[parentConfig].Module.DataResources[ind].Pos.Line
    				} else if rs.Type == ResourceTypeResource {
    					
    					log.Printf("Resource Name: %s",re.Name)
    					log.Printf("Resource Type: %s",re.ResourceType)
    					for key := range configs[parentConfig].Module.ManagedResources {
    						log.Printf("Parent Module Configs Managed Resource Key: %s",key)
    					}
    
    					fname = filepath.Base(configs[parentConfig].Module.ManagedResources[ind].Pos.Filename)
    					re.Line = &configs[parentConfig].Module.ManagedResources[ind].Pos.Line
    				}
    
    				r.AddFileIfNotExists(parent, parentModule, fname)
    
    				parent.Children[fname].Children[id] = re
    
    			}
    

    The following output here shows a bit more whats going on.

    2022/01/31 09:48:12 Parent Module State Child Resource: module.atlantis_v2.module.ecs_service.module.alb_routing.data.aws_route53_zone.private
    2022/01/31 09:48:12 Resource State Type: data
    2022/01/31 09:48:12 Resource State Type is Data
    2022/01/31 09:48:12 Parent Module State Child Resource: module.atlantis_v2.module.ecs_service.module.alb_routing.data.aws_route53_zone.public
    2022/01/31 09:48:12 Resource State Type: resource
    2022/01/31 09:48:12 Resource Name: public
    2022/01/31 09:48:12 Resource Type: aws_route53_zone
    2022/01/31 09:48:12 Parent Module Configs Managed Resource Key: aws_lb_listener_rule.this
    2022/01/31 09:48:12 Parent Module Configs Managed Resource Key: aws_route53_record.public_record_prevent_destroy
    2022/01/31 09:48:12 Parent Module Configs Managed Resource Key: aws_route53_record.public_record
    2022/01/31 09:48:12 Parent Module Configs Managed Resource Key: aws_route53_record.private_record_prevent_destroy
    2022/01/31 09:48:12 Parent Module Configs Managed Resource Key: aws_route53_record.private_record
    2022/01/31 09:48:12 Parent Module Configs Managed Resource Key: aws_lb_target_group.this_prevent_destroy
    2022/01/31 09:48:12 Parent Module Configs Managed Resource Key: aws_lb_target_group.this
    2022/01/31 09:48:12 Parent Module Configs Managed Resource Key: aws_lb_listener_rule.this_prevent_destroy
    

    First thing to note here that is worth calling out, there is a 3 depth module call in play. I don't think that matters but maybe it does. It can be seen here at the resource address module.atlantis_v2.module.ecs_service.module.alb_routing.data.aws_route53_zone.public is being labeled as a Resource as opposed to Data. The log further down confirms that the Parent module does not contain a resource for hosted zone. The odd thing here is that the resource prior is very similar, but is treated correctly as a Data type. It has an almost identical path to the impacted resource address.

    At the moment I cannot immediately tell how this type is being set because I assume that is where the problem is located or will at least tell us more information about it. FWIW this is a runtime error that is happening when allowing rover to execute the Terraform Plan as well.

    I will keep digging into this but if others see anything similar or have some tips help is appreciated.

  • [Feature Request] How can rover use an already generated plan ?

    [Feature Request] How can rover use an already generated plan ?

    Thank you for this great tool! It is really useful for a 4-eye plan checking. But it will be really cool to be able to use rover directly with an already existing plan file (json or not) since some organization (as mine) are using some automation and abstraction stuff to generate plans and then apply them. So as a for eye checking it will be very interesting.

    Cheers :)

  • Use predefined TF plan for visualization

    Use predefined TF plan for visualization

    Hi. Thanks for developing this tool. I am not able to run the tool as it tries to generate the TF plan but my configuration uses symlinked files and environment variables to generate the plan. Could you support loading the details directly from a specified plan file instead of generating it on the fly?

  • Invalid visualization

    Invalid visualization

    As was being discussed in #90, according to @JackFlukinger, there's an issue in the visualization of my AWS-based TF state.

    SVG generated by Rover is here: https://file.io/YJrw7hJXmSEp

    Let's discuss and fix this issue here instead of in the original bug meant for the panic that got fixed.

    Okay @nonbeing , definitely not intended. Where is the data.aws_iam_policy_document.webhook_sns_topic_policy supposed to be housed? Should be a simple fix.

    I'm not sure I understand, @JackFlukinger ... Could you please explain what the issue is?

  • Terraform Visualizer  - Resources in the graph are on top of each other

    Terraform Visualizer - Resources in the graph are on top of each other

    Hi,

    This could be by design, but when I go to the Rover - Terraform Visualizer, all the resources are on top of each other in the centre of the graph.

    Do I need to move these elements around manually or should it be done by Rover?

    Thank you! Dave

  • terraform modules in relative subdirectories

    terraform modules in relative subdirectories

    Hi, we do have the terraform modules relative to the environment related files. Is it possible to use rover with this setup? /env/env_name/main.tf /env/env_name/state.conf ... configuration.auto.tfvars.... etc /terraform_modules/mod1 /terraform_modules/mod2

    Where e.g. main.tf points to module ../../terraform_modules/module1

    Thanks

  • [BUG] panic: runtime error: invalid memory address or nil pointer dereference v0.3.0

    [BUG] panic: runtime error: invalid memory address or nil pointer dereference v0.3.0

    Hi, thanks for that amazing tool.

    I found that version v0.3.0 doesn't work while v0.2.2 does work:

    docker run --rm -it -p 9000:9000 -v $(pwd):/src --env=AWS_ACCESS_KEY_ID="nanana" --env=AWS_SECRET_ACCESS_KEY="nununu" --env=AWS_DEFAULT_REGION="eu-west-1" --platform linux/amd64 im2nguyen/rover -tfBackendConfig lalala.s3.tfbackend -tfVarsFile lalala.tfvars -workspaceName=lalala
    2022/01/14 11:59:40 Starting Rover...
    2022/01/14 11:59:40 Initializing Terraform...
    2022/01/14 11:59:58 Running in mkyc workspace...
    2022/01/14 12:00:03 Generating plan...
    2022/01/14 12:00:34 Parsing configuration...
    2022/01/14 12:00:34 Generating resource overview...
    2022/01/14 12:00:35 Generating resource map...
    panic: runtime error: invalid memory address or nil pointer dereference
    [signal SIGSEGV: segmentation violation code=0x1 addr=0x48 pc=0xa5b0cf]
    
    goroutine 1 [running]:
    main.(*rover).GenerateModuleMap(0xc000159320, 0xc0003c87e0, {0xc00003d8d8, 0x12})
            /src/map.go:212 +0x1acf
    main.(*rover).GenerateModuleMap(0xc000159320, 0xc0006ddb88, {0x0, 0x0})
            /src/map.go:240 +0xefc
    main.(*rover).GenerateMap(0xc000159320)
            /src/map.go:319 +0x1bc
    main.(*rover).generateAssets(0xc000159320)
            /src/main.go:207 +0x176
    main.main()
            /src/main.go:142 +0xd19
    
    

    when running the same with v0.2.2 it works.

  • Nested Modules and SVG Image Generation in CLI

    Nested Modules and SVG Image Generation in CLI

    This is a big one.

    Adds:

    • Full nested module support
    • RSO rewritten to support nested modules and spotty configuration
    • Graph node and edge refactor to generate from resource map instead of going back through plans, states, configs again
      • Can make changes to graph output by modifying map
    • SVG instead of PNG output -- browsers only allow downloaded images up to some unspecified size. I had some trouble with large graphs not exporting due to this. SVG format makes the images much smaller, and infinitely scalable
    • Some map updates, always shows line numbers (even in nested modules) if available
      • Nested resources and modules are indented for general readability
    • Terraform 1.1.2 support
    • SVG export support in CLI with -genImage true. Probably does not work with docker, though.

    I'm happy to go into a ton more detail, but it all works. If you don't want to PR because this is so ginormous I get it.

    Resolves #60 Resolves #57 Resolves #48 Resolves #46 Resolves #26

  • Rover & CDK for Terraform & Azure CLI

    Rover & CDK for Terraform & Azure CLI

    Hi,

    First of all Rover seems great!

    But, I'm trying to use Rover on a CDK for Terraform -project (CDKTF). It is understandable, that Rover does not work in the basedir of the CDK project. So, I cd to the dir where CDKTF creates the Terraform JSON. In that dir what happens is:

    % ls
    cdk.tf.json     plan
    % docker run --rm -it -p 9000:9000 -v $(pwd):/src im2nguyen/rover
    2021/09/24 07:50:10 Starting Rover...
    2021/09/24 07:50:10 Initializing Terraform...
    2021/09/24 07:50:10 Unable to parse Plan: exit status 1
    
    Error: Error building ARM Config: Please ensure you have installed Azure CLI version 2.0.79 or newer. Error parsing json result from the Azure CLI: Error launching Azure CLI: exec: "az": executable file not found in $PATH.
    
    
    % az --version                                                   
    azure-cli                         2.28.0
    
    core                              2.28.0
    telemetry                          1.0.6
    
    Python location '/usr/local/Cellar/azure-cli/2.28.0/libexec/bin/python'
    Extensions directory '/Users/andreas.asuja/.azure/cliextensions'
    
    Python (Darwin) 3.9.7 (default, Sep  3 2021, 12:37:55) 
    [Clang 12.0.5 (clang-1205.0.22.9)]
    
    Legal docs and information: aka.ms/AzureCliLegal
    
    
    Your CLI is up-to-date.
    

    I'm sorry I don't have time to dig more into this, but just to inform you.

  • [Feature Request] rover support to terraform workspaces

    [Feature Request] rover support to terraform workspaces

    First this tool is awesome!! we use terraform workspaces heavily and would love to have a way to pass the terraform workspace select command some how. Let me know if there is a way!

    thanks!

  • runtime panic issue with 0.3.0 release

    runtime panic issue with 0.3.0 release

    Still have some issue with running rover in my local

    How to reproduce

    • grab the artifact from releases page
    • create main.tf
    • run rover_0.3.0_darwin_arm64/rover_v0.3.0 -standalone -tfPath <path-to-terraform-installation>

    main.tf ref

    output "hello_world" {
      value = "Hello, World!"
    }
    

    error log

    2022/01/24 14:25:15 Starting Rover...
    2022/01/24 14:25:15 Initializing Terraform...
    2022/01/24 14:25:15 Generating plan...
    2022/01/24 14:25:15 Generating resource overview...
    open .terraform/modules/modules.json: no such file or directory
    2022/01/24 14:25:15 Generating resource map...
    panic: runtime error: invalid memory address or nil pointer dereference
    [signal SIGSEGV: segmentation violation code=0x2 addr=0xb0 pc=0x10302d520]
    
    goroutine 1 [running]:
    main.(*rover).GenerateModuleMap(0x1400000b320, 0x140003c9b68, {0x0, 0x0})
    	rover/map.go:103 +0x1e0
    main.(*rover).GenerateMap(0x1400000b320)
    	rover/map.go:322 +0x1c8
    main.(*rover).generateAssets(0x1400000b320)
    	rover/main.go:193 +0x10c
    main.main()
    	rover/main.go:138 +0xeb8
    
  • UI Improvements

    UI Improvements

    Your tool definitely makes the job! How about some improvements? Here are my suggestions:

    • ability to toggle (fold/unfold or hide/unhide) the Legend section
    • text box that will help to search for an object
    • save as PNG button
    • button to reset graph section (IMHO must have)
  • terraform target option

    terraform target option

    In terraform you can provide a target module to apply using -target option to only execute a particular module. Does rover support a similar option ? similarly how do you pass the additional options to terraform ?

  • CI/CD Integration ideas

    CI/CD Integration ideas

    Hi,

    Great tool and benefits are immediately visible. I'm currently using it locally, outside of the CI/CD pipeline as helper before I push the code which brings me to the question of possible scenarios where this can be employed as part of the pipeline. Something like report for the PR approver. Are there such scenarios and what could be the best practice for that kind of integration?

  • Plan fails due to missing variable, even when passing variable with -tfVar

    Plan fails due to missing variable, even when passing variable with -tfVar

    I'm trying to use rover but getting issues with missing variables. This is the command I am using:

    docker run --rm -it -p 9000:9000 -v $(pwd):/src im2nguyen/rover -standalone true -tfVar clusterName=eu-cluster

    then I see this error:

    2022/08/26 20:38:29 Starting Rover...
    2022/08/26 20:38:29 Initializing Terraform...
    2022/08/26 20:38:36 Generating plan...
    2022/08/26 20:38:41 Unable to parse Plan: Unable to run Plan: variable "clusterName" was required but not supplied
    [ec2-user@ip-10-253-11-224 terraform]$ docker run --rm -it -p 9000:9000 -v $(pwd):/src im2nguyen/rover -standalone
    

    Is there something I am missing here?

  • Brew Terraform dependency

    Brew Terraform dependency

    Hi,

    I'd suggest Terraform is removed as a dependency in Brew since it can conflict with local setup, e.g. when tfenv is used instead managing Terraform installation with Brew.

    Cheers, Alen

  • Issues with terraform versioning when using rover

    Issues with terraform versioning when using rover

    I'm trying to build a graphic while running rover (from my terraform project directory) through docker with the following command:

    docker run --rm -it -p 9000:9000 -v $(pwd):/src im2nguyen/rover:v0.3.3 -planPath terraform.tfstate

    The output would be the following:

    2022/08/24 13:54:51 Starting Rover...
    2022/08/24 13:54:51 Using provided plan...
    2022/08/24 13:54:53 Unable to parse Plan: Unable to read Plan (/src/terraform.tfstate): exit status 1
    
    Error: missing or corrupted provider plugins:
      - registry.terraform.io/hashicorp/random: there is no package for registry.terraform.io/hashicorp/random 3.3.2 cached in .terraform/providers
      - registry.terraform.io/hashicorp/time: there is no package for registry.terraform.io/hashicorp/time 0.7.2 cached in .terraform/providers
      - registry.terraform.io/hashicorp/cloudinit: there is no package for registry.terraform.io/hashicorp/cloudinit 2.2.0 cached in .terraform/providers
      - registry.terraform.io/gavinbunney/kubectl: there is no package for registry.terraform.io/gavinbunney/kubectl 1.14.0 cached in .terraform/providers
      - registry.terraform.io/hashicorp/external: there is no package for registry.terraform.io/hashicorp/external 2.2.2 cached in .terraform/providers
      - registry.terraform.io/hashicorp/aws: there is no package for registry.terraform.io/hashicorp/aws 3.75.2 cached in .terraform/providers
      - registry.terraform.io/hashicorp/null: there is no package for registry.terraform.io/hashicorp/null 3.1.1 cached in .terraform/providers
      - registry.terraform.io/hashicorp/tls: there is no package for registry.terraform.io/hashicorp/tls 4.0.1 cached in .terraform/providers
      - registry.terraform.io/hashicorp/helm: there is no package for registry.terraform.io/hashicorp/helm 2.6.0 cached in .terraform/providers
      - registry.terraform.io/hashicorp/kubernetes: there is no package for registry.terraform.io/hashicorp/kubernetes 2.12.1 cached in .terraform/providers
      - registry.terraform.io/hashicorp/http: there is no package for registry.terraform.io/hashicorp/http 3.0.1 cached in .terraform/providers
      - registry.terraform.io/hashicorp/local: there is no package for registry.terraform.io/hashicorp/local 2.2.3 cached in .terraform/providers
    

    I can however start rover through passing the plan as a json:

    docker run --rm -it -p 9000:9000 -v $(pwd):/src im2nguyen/rover:v0.3.3 -planJSONPath=plan.json

    If I access the container via CLI I can see that the terraform version used is 1.1.2 when the version used for the deployment is 1.1.9. I've tried passing the terraform path through -tfPath hoping it would take the correct one used for my deployment but to no help.

    How can I fix the versioning issue so that terraform init doesn't fail? (I'm also parsing it as a json to work because if I don't parse any plan rover will freeze during terraform init, most likely due to this issue)

    Also, is there a way to generate a graphic (since I want to include it in a pipeline) with only specific resources shown, like for example only created and updated resources without anything else (especially variables) ?

    Thanks in advance!

Callgraph analysis and visualization for Go
Callgraph analysis and visualization for Go

Gocyto A Go SSA callgraph builder and visualizer, by @protolambda. Features: output to generic Cytoscape JSON format. (list of nodes, list of edges) o

Nov 3, 2022
gosivy - Another visualization tool for Go process metrics
gosivy - Another visualization tool for Go process metrics

gosivy Another visualization tool for Go process metrics. Gosivy tracks Go process's metrics and plot their evolution over time right into your termin

Nov 27, 2022
🚀Statsview is a real-time Golang runtime stats visualization profiler
🚀Statsview is a real-time Golang runtime stats visualization profiler

Statsview is a real-time Golang runtime stats visualization profiler. It is built top on another open-source project, go-echarts, which helps statsview to show its graphs on the browser.

Dec 29, 2022
entviz is an ent extension that provides visualization of the schema graph
entviz is an ent extension that provides visualization of the schema graph

entviz entviz is an ent extension that creates visual graph (html file) of your ent's schema. install go get github.com/hedwigz/entviz add this exten

Dec 9, 2022
Sloop - Kubernetes History Visualization
 Sloop - Kubernetes History Visualization

Sloop - Kubernetes History Visualization Sloop monitors Kubernetes, recording histories of events and resource state changes and providing visualizati

Dec 27, 2022
Data visualization with chart, Create CSV file, Read Write CSV file

Data visualization with chart, Create CSV file, Read Write CSV file, Read from json file and many more in single project ......

Jan 13, 2022
HSM package provides a simple state chart library written in Go.

UML HSM HSM package provides a simple state chart library written in Go. Supported UML State Chart Features Feature Implemented Test case Simple state

Apr 14, 2022
A repository for plotting and visualizing data

gonum/plot is the new, official fork of code.google.com/p/plotinum. It provides an API for building and drawing plots in Go

Jan 5, 2023
Tool that can parse Go files into an abstract syntax tree and translate it to several programming languages.
Tool that can parse Go files into an abstract syntax tree and translate it to several programming languages.

GoDMT GoDMT, the one and only Go Data Model Translator. The goal of this project is to provide a tool that can parse Go files that include var, const,

Nov 28, 2022
A repository for plotting and visualizing data

Gonum Plot gonum/plot is the new, official fork of code.google.com/p/plotinum. It provides an API for building and drawing plots in Go. Note that this

Jun 3, 2021
Ltree Visualizer - A golang library to visualize postgres ltree type data using DOT language and Graphviz
Ltree Visualizer - A golang library to visualize postgres ltree type data using DOT language and Graphviz

Ltree Visualizer A golang library to visualize postgres ltree type data using DOT language and Graphviz What is Ltree? Ltree is a data type which is u

Jun 12, 2022
termdbms: A TUI for viewing and editing databases, written in Go
 termdbms: A TUI for viewing and editing databases, written in Go

termdbms: A TUI for viewing and editing databases, written in Go Database Support SQLite made with modernc.org/sqlite, charmbracelet/bubbletea, and c

Dec 26, 2022
Signum Explorer Telegram Bot - it's a simplified version of the web Signum Explorer
Signum Explorer Telegram Bot - it's a simplified version of the web Signum Explorer

Signum Explorer Telegram Bot - it's a simplified version of the web Signum Explorer. Bot allows you to easily monitor the status of your account and to receive notifications about new transactions and blocks.

Nov 9, 2022
State observer - StateObserver used to synchronize the local(cached) state of the remote object with the real state

state observer StateObserver used to synchronize the local(cached) state of the

Jan 19, 2022
CLI to migrate Terraform Configuration and State

tfmigrator CLI CLI to migrate Terraform Configuration and State. The migration feature is implemented with tfmigrator/tfmigrator, so please see the do

Dec 14, 2022
An ease to use finit state machine golang implementation.Turn any struct to a fsm with graphviz visualization supported.

go-fsm An ease to use finit state machine golang implementation.Turn any struct to a fsm with graphviz visualization supported. usage import github.co

Dec 26, 2021
Interactive dependency graph visualization tool for golang
Interactive dependency graph visualization tool for golang

Interactive dependency graph visualization tool for golang using the awesome cytoscape graph visualizer.

Sep 1, 2022
cluster-api-state-metrics (CASM) is a service that listens to the Kubernetes API server and generates metrics about the state of custom resource objects related of Kubernetes Cluster API.

Overview cluster-api-state-metrics (CASM) is a service that listens to the Kubernetes API server and generates metrics about the state of custom resou

Oct 27, 2022
Us-api: a simple service that returns the US state code based on the state

us-api us-api is a simple service that returns the US state code based on the state. It does not support creating, updating nor deleting data. Local D

Dec 13, 2021
Reads from existing Cloud Providers (reverse Terraform) and generates your infrastructure as code on Terraform configuration
Reads from existing Cloud Providers (reverse Terraform) and generates your infrastructure as code on Terraform configuration

TerraCognita Imports your current Cloud infrastructure to an Infrastructure As Code Terraform configuration (HCL) or/and to a Terraform State. At Cycl

Dec 30, 2022