Develop for XenServer

Getting Started with Go

The XenServer-SDK directory contains the following folders that are relevant to Go programmers:

  • XenServerGo: The XenServer SDK for Go.

    • src: XenServerGo shipped as source files which can be used as a local module for other Go projects. Every API object is associated with one Go file. For example, the functions implementing the VM operations are contained within the file vm.go.

RPC protocol:

The Go SDK supports the JSON-RPC v2.0 protocol.

Platform supported:

  • Windows
  • Linux

This library requires Go 1.22 or greater.


This module is backwards compatible by using different names for API functions that have changed throughout different XenServer or Citrix Hypervisor versions. To communicate with hosts running different versions of Citrix Hypervisor or XenServer, it is advisable to check the versions supported by each function first. For example, Host.Evacuate3 can only be used for servers running XAPI version 1.297.0 or above and Host.Evacuate4 for servers running XAPI version 23.27.0 or above.


  1. Extract the contents of the SDK ZIP file.

  2. Navigate to the extracted XenServer-SDK\XenServerGo directory and copy the whole folder src into your Go project directory.

    To use XenServerGo SDK as a local Go module, include the following line into the go.mod file under your Go project:

    replace xenapi => ./src

    You can then import the XenServer module with the following command:

    import "xenapi"

    Before building your project, run the following Go commands.

    go get -u all
    go mod tidy


Examples on the usage of the XenServer SDK for Go can be found at XenServerGo usage examples on GitHub.

Getting Started with Go

In this article