Setting up the Golem Go SDK
⚠️
If the project was created with golem new, it already has the Golem Go SDK set up and these
steps can be ignored.
If setting up the Golem Go SDK (opens in a new tab) manually, the following steps are required:
Add the Golem Go SDK as a dependency
Add the following dependency to the project:
$ go get github.com/golemcloud/golem-goAdd all the supported WIT files into the project
The project's wit/deps directory must contain all the WIT files from the golem-wit (opens in a new tab) repository.
Importing WITs into the component's world:
If the project's WIT file was like this:
package golem:demo;
world go-example {
export api;
}Modify it in the following way:
package golem:demo;
world go-example {
import golem:api/host@1.1.0;
import golem:rpc/types@0.1.0;
import wasi:blobstore/blobstore;
import wasi:blobstore/container;
import wasi:cli/environment@0.2.0;
import wasi:clocks/wall-clock@0.2.0;
import wasi:clocks/monotonic-clock@0.2.0;
import wasi:filesystem/preopens@0.2.0;
import wasi:filesystem/types@0.2.0;
import wasi:http/types@0.2.0;
import wasi:http/outgoing-handler@0.2.0;
import wasi:io/error@0.2.0;
import wasi:io/poll@0.2.0;
import wasi:io/streams@0.2.0;
// import wasi:keyvalue/eventual-batch@0.1.0; // NOTE: cannot include it because the bindings collide with blobstore
// import wasi:keyvalue/eventual@0.1.0; // NOTE: cannot include it because the bindings collide with blobstore
import wasi:logging/logging;
import wasi:random/random@0.2.0;
import wasi:random/insecure@0.2.0;
import wasi:random/insecure-seed@0.2.0;
import wasi:sockets/ip-name-lookup@0.2.0;
import wasi:sockets/instance-network@0.2.0;
export api;
}