Difference between revisions of "GoVPP"
From fd.io
(→Devel) |
(→Devel) |
||
Line 61: | Line 61: | ||
* [https://gerrit.fd.io/r/gitweb?p=govpp.git;a=blob;f=README.md README.md] | * [https://gerrit.fd.io/r/gitweb?p=govpp.git;a=blob;f=README.md README.md] | ||
+ | |||
+ | * Auto-generated documentation on [https://godoc.org/git.fd.io/govpp.git GoDoc] |
Revision as of 12:18, 22 May 2017
GoVPP Facts |
Project Lead:
Repository: git clone https://gerrit.fd.io/r/govpp |
Intro
GoVPP is a Golang toolset for VPP management. It consists of a set of Golang packages that provide the API for VPP management based on the Go bindings generated from the VPP binary APIs. It can be used as the foundation for any VPP management/control plane written in Go.
Apart from the packages providing the API and tools allowing to write VPP management applications in Go from scratch, the project also aims to provide a cloud-native VPP management agent that can be used in VPP-based container infrastructure.
Project Contact Name and Email
Scope
GoVPP project scope:
- Go bindings generator:
- generates Go structs from binary API definitions in JSON
- annotates the generated Go bindings so they can be marshalled / unmarshalled to/from binary data as understood by VPP
- GoVPP API packages:
- api: high-level API for communication with govpp core using Go channels
- core: main functionality of the govpp, sends and receives the messages to/from VPP using the adapter, marshalls/unmarshalls them and forwards them between the client Go channels and the VPP
- adapter: the adapter between the govpp core and the VPP, responsible for sending and receiving binary-encoded data via shared memory, leverages VPP pneum library
- Other code to ease the adoption of fd.io by Go users
- Supporting code:
- examples
- unit tests
Out of scope:
- Generator of JSON definitions of VPP binary APIs
- vppapiclient (former pneum) library used to send & receive binary-encoded data to/from VPP
Devel
- Go-getting the code:
go get git.fd.io/govpp.git
- Installing the binary API generator:
go install git.fd.io/govpp.git/cmd/binapi-generator
- go generate rule for generating binary API bindings:
//go:generate binapi_generator --input-file=/usr/share/vpp/api/vpe.api.json --output-dir=./bin_api
- Auto-generated documentation on GoDoc