elm-protobuf

protobuf plugin for elm

Github星跟踪图

elm-protobuf

Build Status
Go Report Card

Join #elm-protobuf on Slack

Experimental protobuf plugin generating elm code to decode/encode Proto3/JSON from proto definitions.

The plugin itself is written in Go, and it requires the base protoc protobuf
compiler to be installed on the system.

For a sample generated output file, see
Repeated.elm.

Supported features

  • double/float fields
  • int32/int64/uint32/uint64/sint32/sint64/fixed32/fixed64/sfixed32/sfixed64
    fields
  • bool fields
  • string fields
  • bytes fields
  • message fields
  • enum fields
  • imports
  • nested types
  • Any type
  • Timestamp type
  • Duration type
  • Struct type
  • wrapper types
  • FieldMask type
  • ListValue type
  • Value type
  • NullValue type
  • oneof
  • map
  • packages
  • options

How to install

Release

The simplest way to install the plugin is to download a pre-compiled binary from
https://github.com/tiziano88/elm-protobuf/releases , then unpack it and copy or
move the protoc-gen-elm binary somewhere in your $PATH.

From source

  • Make sure that you have a Go environment correctly set up, and that
    $GOPATH/bin is included in your $PATH. See
    https://golang.org/doc/install for info.

  • Install a recent protoc compiler version from
    https://github.com/google/protobuf (it must have support for proto3
    format).

  • Obtain the protoc-gen-elm binary using go get:

    go get github.com/tiziano88/elm-protobuf/protoc-gen-elm
    

How to run

Run the protoc compiler specifying the --elm_out flag:

protoc --elm_out=. *.proto

protoc will automatically detect the protoc-gen-elm binary from your $PATH
and use it to generate the output elm code.

Then, in your project, add a dependency on the runtime library:

elm install tiziano88/elm-protobuf

References

https://developers.google.com/protocol-buffers/

https://developers.google.com/protocol-buffers/docs/proto3#json

https://developers.google.com/protocol-buffers/docs/reference/cpp/google.protobuf.compiler.plugin.pb

https://github.com/google/protobuf/wiki/Third-Party-Add-ons

主要指标

概览
名称与所有者tiziano88/elm-protobuf
主编程语言Elm
编程语言Go (语言数: 4)
平台
许可证MIT License
所有者活动
创建于2016-02-08 10:16:11
推送于2022-11-14 03:55:36
最后一次提交2019-04-09 12:39:07
发布数10
最新版本名称3.0.0 (发布于 2018-09-17 22:29:13)
第一版名称v0.0.1 (发布于 )
用户参与
星数94
关注者数4
派生数28
提交数213
已启用问题?
问题数11
打开的问题数5
拉请求数9
打开的拉请求数6
关闭的拉请求数5
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?