{"id":13741248,"url":"https://github.com/tiziano88/elm-protobuf","last_synced_at":"2025-09-10T15:35:45.932Z","repository":{"id":52977878,"uuid":"51290988","full_name":"tiziano88/elm-protobuf","owner":"tiziano88","description":"protobuf plugin for elm","archived":false,"fork":false,"pushed_at":"2022-11-14T03:55:36.000Z","size":212,"stargazers_count":94,"open_issues_count":11,"forks_count":28,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-27T23:02:45.546Z","etag":null,"topics":["definition","elm","grpc","json","protobuf","protocol-buffers","rpc","serialization"],"latest_commit_sha":null,"homepage":"https://package.elm-lang.org/packages/tiziano88/elm-protobuf/latest/","language":"Elm","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tiziano88.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-02-08T10:16:11.000Z","updated_at":"2024-08-24T02:02:20.000Z","dependencies_parsed_at":"2023-01-22T03:20:40.343Z","dependency_job_id":null,"html_url":"https://github.com/tiziano88/elm-protobuf","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiziano88%2Felm-protobuf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiziano88%2Felm-protobuf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiziano88%2Felm-protobuf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiziano88%2Felm-protobuf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tiziano88","download_url":"https://codeload.github.com/tiziano88/elm-protobuf/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248855961,"owners_count":21172673,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["definition","elm","grpc","json","protobuf","protocol-buffers","rpc","serialization"],"created_at":"2024-08-03T04:00:57.183Z","updated_at":"2025-04-14T09:42:27.420Z","avatar_url":"https://github.com/tiziano88.png","language":"Elm","funding_links":[],"categories":["Language-Specific"],"sub_categories":["Elm"],"readme":"# elm-protobuf\n\n[![Build Status](https://travis-ci.org/tiziano88/elm-protobuf.svg?branch=master)](https://travis-ci.org/tiziano88/elm-protobuf)\n[![Go Report Card](https://goreportcard.com/badge/github.com/tiziano88/elm-protobuf)](https://goreportcard.com/report/github.com/tiziano88/elm-protobuf)\n\n[Join #elm-protobuf on Slack](https://elmlang.slack.com/messages/elm-protobuf/details/)\n\nExperimental protobuf plugin generating elm code to decode/encode [Proto3/JSON](https://developers.google.com/protocol-buffers/docs/proto3#json) from proto definitions.\n\nThe plugin itself is written in Go, and it requires the base `protoc` protobuf\ncompiler to be installed on the system.\n\nFor a sample generated output file, see\n[Repeated.elm](https://github.com/tiziano88/elm-protobuf/blob/master/protoc-gen-elm/go_tests/testdata/repeated/expected_output/Repeated.elm).\n\n## Supported features\n\n-   [x] `double`/`float` fields\n-   [x]\n    `int32`/`int64`/`uint32`/`uint64`/`sint32`/`sint64`/`fixed32`/`fixed64`/`sfixed32`/`sfixed64`\n    fields\n-   [x] `bool` fields\n-   [x] `string` fields\n-   [ ] `bytes` fields\n-   [x] message fields\n-   [x] enum fields\n-   [x] imports\n-   [x] nested types\n-   [ ] `Any` type\n-   [x] `Timestamp` type\n-   [ ] `Duration` type\n-   [ ] `Struct` type\n-   [x] wrapper types\n-   [ ] `FieldMask` type\n-   [ ] `ListValue` type\n-   [ ] `Value` type\n-   [ ] `NullValue` type\n-   [x] `oneof`\n-   [ ] `map`\n-   [ ] packages\n-   [ ] options\n\n## How to install\n\n### Release\n\nThe simplest way to install the plugin is to download a pre-compiled binary from\nhttps://github.com/tiziano88/elm-protobuf/releases , then unpack it and copy or\nmove the `protoc-gen-elm` binary somewhere in your `$PATH`.\n\n### From source\n\n-   Make sure that you have a Go environment correctly set up, and that\n    `$GOPATH/bin` is included in your `$PATH`. See\n    https://golang.org/doc/install for info.\n\n-   Install a recent `protoc` compiler version from\n    https://github.com/google/protobuf (it must have support for `proto3`\n    format).\n\n-   Obtain the `protoc-gen-elm` binary using `go get`:\n\n    ```\n    go get github.com/tiziano88/elm-protobuf/protoc-gen-elm\n    ```\n\n## How to run\n\nRun the `protoc` compiler specifying the `--elm_out` flag:\n\n`protoc --elm_out=. *.proto`\n\n`protoc` will automatically detect the `protoc-gen-elm` binary from your `$PATH`\nand use it to generate the output elm code.\n\nThen, in your project, add a dependency on the runtime library:\n\n`elm install tiziano88/elm-protobuf`\n\n## References\n\nhttps://developers.google.com/protocol-buffers/\n\nhttps://developers.google.com/protocol-buffers/docs/proto3#json\n\nhttps://developers.google.com/protocol-buffers/docs/reference/cpp/google.protobuf.compiler.plugin.pb\n\nhttps://github.com/google/protobuf/wiki/Third-Party-Add-ons\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftiziano88%2Felm-protobuf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftiziano88%2Felm-protobuf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftiziano88%2Felm-protobuf/lists"}