Go toolset for the VPP.
The GoVPP repository contains Go client libraries, code bindings generator and other toolings for VPP.
Here is a code sample of an effortless way for calling the VPP API services by using a generated RPC client.
Note For extensive info about using generated RPC client , see RPC Services
// Connect to VPP API socket
conn, err := govpp.Connect("/run/vpp/api.sock")
if err != nil {
// handle err
}
defer conn.Disconnect()
// Initialize VPP API service client
client := vpe.NewServiceClient(conn)
// Call VPP API service method
reply, err := client.ShowVersion(context.Background(), &vpe.ShowVersion{})
if err != nil {
// handle err
}
log.Print("Version: ", reply.Version)
See complete code for the example above: examples/rpc-service.
For complete code examples demonstrating vrious GoVPP features, please refer to the examples directory.
Refer to User Guide document for info about how to use GoVPP. If you run into any issues or need some help with debugging GoVPP, read our Troubleshooting document.
Go reference docs are available at pkg.go.dev.
For other documentation refer to docs directory.
Anyone insterested in GoVPP development is welcome to join our bi-weekly 📣 GoVPP Community Meeting, where we accept inputs from projects using GoVPP and have technical discussions about actual development.
Here is a brief overview of the repository structure.