Execute a binary from memory, without touching the disk. Linux only.
Available as both a Go module and a binary.
The Command()
method takes an io.Reader
, so you can use it with things like an HTTP response body, a bytes.Buffer
, etc.
It provides an *exec.Cmd
(via memit.Command(...)
) so you can wire up stdin/out and configure other parameters just like you would with a regular command.
package main
import "github.com/liamg/memit"
func main() {
resp, _ := http.Get("https://.../mybinary")
cmd, _, _ := memit.Command(resp.Body, "--args", "--go", "--here")
cmd.Stderr = os.Stderr
cmd.Stdin = os.Stdin
cmd.Stdout = os.Stdout
_ = cmd.Run()
}
Grab the latest release and run it like this:
memit https://.../mybinary -- # args for the actual binary can be put after the --