Coder Social home page Coder Social logo

voltha-protos's Introduction

voltha-protos

Protobuf files used by VOLTHA.

Currently this is used to generate both Golang and Python protobufs and gRPC stubs.

The testing process is dependent on specific versions of the protobuf tools, so make sure to use the versions of protoc and protoc-gen-go specified below.

Protobuf definition files are located in protos/voltha_protos directory. This directory hierarchy and import scheme is required to allow the python code generated by the gRPC compiler to have the correct import paths.

NOTE: The protos/google/api directory has files copied from the Google APIs, and is only included for initial compilation of the VOLTHA protobuf files - these API's should be installed independently via either the python googleapis-common-protos package or the golang go-genproto repo.

Go Environment

Get the voltha-protos repository:

mkdir -p ~/source
cd ~/source
git clone https://gerrit.opencord.org/voltha-protos
cd voltha-protos

Setting up the Go environment

After installing Go on a Mac or Linux environment, the GOPATH environment variable needs be set. These instructions assume it's ~/go.

Create a symbolic link in the $GOPATH/src tree to the voltha-go repository:

mkdir -p $GOPATH/src/github.com/opencord
ln -s ~/source/voltha-protos $GOPATH/src/github.com/opencord/voltha-protos

Go Dependencies

Install Dependencies

Checkout and go install correct version of protoc-gen-go:

GIT_TAG="v1.3.1"
go get -d -u github.com/golang/protobuf/protoc-gen-go
git -C "$(go env GOPATH)"/src/github.com/golang/protobuf checkout $GIT_TAG
go install github.com/golang/protobuf/protoc-gen-go

Building locally

Install the protobuf compiler (protoc) 3.7.0 either manually or via the Makefile target (if on Linux amd64). Then build the python and golang stubs:

cd $GOPATH/src/github.com/opencord/voltha-protos
make install-protoc
make build

use dist/*.tar.gz for local python imports use go/ for local go imports

Using voltha-protos in your project

Python

Installation from Pypi:

pip install voltha-protos

or from a local build:

pip install ~/source/voltha-protos/dist/*.tar.gz

To use it within your code (for example)

from voltha_protos import voltha_pb2

Go

go get github.com/opencord/voltha-protos
cd $GOPATH/github.com/opencord/voltha-protos
make build

Protos are importable from github.com/opencord/voltha-protos/v2/go/<packagename>

To use the libraries, import protos with the root path github.com/opencord/voltha-protos/v2/go/

Testing

make test will run tests for all languages.

voltha-protos's People

Contributors

willkurk avatar smbaker avatar zdw avatar devmalyapaul avatar alaxmesh-radisys avatar gcgirish avatar gcgirish-radisys avatar khagerma avatar mahirgu avatar teone avatar serkantul avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.