tetratelabs/proxy-wasm-go-sdk

Failed to load Wasm module due to a missing import: wasi_snapshot_preview1.fd_filestat_get

Closed this issue · 2 comments

Describe the bug / error

When I am trying to use the following package: "google.golang.org/protobuf/proto"
And in particular:

func (ctx *setBodyContext) OnHttpRequestBody(bodySize int, endOfStream bool) types.Action {
    _ = proto.String("x")
    return types.ActionContinue
}

I get the following error during Envoy startup:
Failed to load Wasm module due to a missing import: wasi_snapshot_preview1.fd_filestat_get

When I give up this package the error is gone and the module loads successfully.

What is your Envoy/Istio version?

envoyproxy/envoy-dev:ce4845329292c3b896fc0d26d5555e6ab54a30b7

What is the SDK version?

Commit bd6f695

What is your TinyGo version?

tinygo version 0.25.0 windows/amd64 (using go version go1.19 and LLVM version 14.0.0)

URL or snippet of your code including Envoy configuration

          http_filters:
          - name: envoy.filters.http.wasm
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.filters.http.wasm.v3.Wasm
              config:
                vm_config:
                  runtime: "envoy.wasm.runtime.v8"
                  code:
                    local:
                      filename: "grpc.wasm"

Additional context (Optional)

It's not the issue of this SDK, but the problem of the host implementation used by Envoy: https://github.com/proxy-wasm/proxy-wasm-cpp-host

Could you open an issue there? Thanks!

BTW, protobuf cannot work with TinyGo, so you might want to seek alternative. See tinygo-org/tinygo#447