How to achieve interactive communication between a Go app and an exec'ed app via stdin/stdout?

This page summarizes the projects mentioned and recommended in the original post on /r/golang

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • ephemerald

    Ephemeral docker-based server instances for (parallel) testing

  • Again, the answer was 'use pipes' and the following reference was given as an example: https://github.com/boz/ephemerald/blob/master/lifecycle/action_exec.go#L130-L163

  • go-web-crontab

    A crontab-like executor with a web front-end

  • Again, the solution involves pipes. There is not much further elaboration on the answer, except for the tip that you can reuse io.Reader/io.Writer intended to be used as pipes for other purposes, and vice-versa: any package that uses io.Reader/io.Writer can also read and write from stdin/stdout pipes.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • GoBot2

    Second Version of The GoBot Botnet, But more advanced.

  • The answer, once more, is to 'use pipes' and to take a look at this code. Unfortunately, that's for Windows only, which I'm most definitely not using...

  • remco

    remco is a lightweight configuration management tool

  • I've also searched GitHub for working examples of similar solutions. Here is one, which I believe to have come across on StackOverflow https://github.com/HeavyHorst/remco/blob/89b372b597e621cf0934ffbb313d7abe9e96fc26/pkg/template/executor.go

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts