는 이동 소스 코드에서 파일을 패키지를 찾을 수 .proto 생성 기능.
이 라이브러리의 목적은 Go를 모델의 진실의 근원지로 사용하고 그 대신에 관용구 코드를 생성하지 않는 .proto 파일에서 Go 코드를 생성하는 것입니다.
는 protobuf 메시지
//proteus:generate
type User struct {
Model
Username string
}
type Model struct {
ID int
CreatedAt time.Time
}
이 예는 다음 protobuf 메시지를 생성합니다를 생성합니다.
message User {
int32 id = 1;
google.protobuf.Timestamp created_at = 2;
string username = 3;
}
go get -v gopkg.in/src-d/proteus.v1/...
요구 사항
전체 과정에 대한 두 가지 요구 사항이 있습니다를 설치합니다.
protoc binary installed on your path
go get -u github.com/gogo/protobuf/...
사용
당신은 프로토 파일을 생성 할 수 있습니다
, 정렬 화/비 정렬 화 및 이동 유형에 대한 protobuf 물건의 나머지 RPC 클라이언트 및 서버 인터페이스와 패키지의 RPC 서버 구현 . 즉, 전체 과정입니다.
proteus -f /path/to/protos/folder \
-p my/go/package \
-p my/other/go/package
만 테우스와 함께 제공되는 명령 줄 도구를 사용하여 프로토 파일을 생성 할 수 있습니다.
proteus proto -f /path/to/output/folder \
-p my/go/package \
-p my/other/go/package
--verbose
또한 만 패키지 gRPC 서버 구현을 생성 할 수 있습니다.
proteus rpc -p my/go/package \
-p my/other/go/package
참고 : 테우스는 플러그인을 통해 확장 될 때까지 기본값, 사용자의 요구에 적합하지 않은 경우 물론, 당신이 제공하는 구성 요소를 사용하여 함께 자신의 발전기 명령을 해킹 할 수 있습니다. 패키지의 godoc 문서를 확인하십시오.
이 소리는 농담입니다. 일반적으로 proto에서 생성 된 이동하고 그것을 거꾸로 할 유용한 사례를 상상할 수 없다.이런 원시적 인 경우에는 * .proto를 직접 쓰는 것이 문제가되지 않습니다. 더 복잡한 경우 (enums, oneof, ...) 모든 도구는 쓸모가 없습니다. – lofcek