{"id":19982646,"url":"https://github.com/zabuzard/prototojson","last_synced_at":"2026-05-08T22:35:42.405Z","repository":{"id":57735427,"uuid":"334983791","full_name":"Zabuzard/ProtoToJson","owner":"Zabuzard","description":"ProtoToJson is a tool to decode and view binary protobuf messages as readable JSON.","archived":false,"fork":false,"pushed_at":"2022-09-22T18:37:28.000Z","size":45,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-12T10:48:29.101Z","etag":null,"topics":["gui","java","json","library","protobuf"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Zabuzard.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":"2021-02-01T14:54:33.000Z","updated_at":"2022-10-07T19:29:43.000Z","dependencies_parsed_at":"2022-08-23T20:30:31.220Z","dependency_job_id":null,"html_url":"https://github.com/Zabuzard/ProtoToJson","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zabuzard%2FProtoToJson","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zabuzard%2FProtoToJson/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zabuzard%2FProtoToJson/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zabuzard%2FProtoToJson/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Zabuzard","download_url":"https://codeload.github.com/Zabuzard/ProtoToJson/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241418356,"owners_count":19959736,"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":["gui","java","json","library","protobuf"],"created_at":"2024-11-13T04:12:26.221Z","updated_at":"2026-05-08T22:35:42.341Z","avatar_url":"https://github.com/Zabuzard.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ProtoToJson\n[![codefactor](https://img.shields.io/codefactor/grade/github/Zabuzard/ProtoToJson)](https://www.codefactor.io/repository/github/zabuzard/prototojson)\n[![maven-central](https://img.shields.io/maven-central/v/io.github.zabuzard.prototojson/prototojson)](https://search.maven.org/search?q=g:io.github.zabuzard.prototojson)\n[![javadoc](https://javadoc.io/badge2/io.github.zabuzard.prototojson/prototojson/javadoc.svg?style=flat\u0026color=AA82FF)](https://javadoc.io/doc/io.github.zabuzard.prototojson/prototojson)\n![Java](https://img.shields.io/badge/Java-11%2B-ff696c)\n[![license](https://img.shields.io/github/license/Zabuzard/ProtoToJson)](https://github.com/Zabuzard/ProtoToJson/blob/master/LICENSE)\n\nProtoToJson is a tool to decode and view binary protobuf messages\nas readable JSON.\n\nIt is able to decode any message, provided a descriptor of its\nprotobuf schema was put into its cache.\n\nThe tool offers an API as well as a small desktop application.\n\n# Requirements\n\n* Requires at least **Java 11**\n\n# Download\n\nMaven:\n\n```xml\n\u003cdependency\u003e\n   \u003cgroupId\u003eio.github.zabuzard.prototojson\u003c/groupId\u003e\n   \u003cartifactId\u003eprototojson\u003c/artifactId\u003e\n   \u003cversion\u003e1.1\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\nJar downloads are available from the [release section](https://github.com/Zabuzard/ProtoToJson/releases).\n\n# Documentation\n\n* [API Javadoc](https://javadoc.io/doc/io.github.zabuzard.prototojson/prototojson)\n  or alternatively from the [release section](https://github.com/Zabuzard/ProtoToJson/releases)\n\n# Descriptor cache\n\nIn order to decode protobuf messages, the tool uses protobuf descriptor files\nwhich have to be provided in its cache. The cache for the desktop application is located at\n```\n%LOCALAPPDATA%\\ProtoToJson\\descriptorCache\n```\n\nSuch descriptor files `foo.desc` can be obtained by executing\n```\nprotoc --descriptor_set_out foo.desc foo.proto\n```\non the protobuf schema `foo.proto`. However, this requires\nthe [protobuf compiler protoc](https://developers.google.com/protocol-buffers)\nto be installed.\n\n# Developer API\n\nThe module exports the package\n```\nde.zabuza.prototojson.api;\n```\nwhich contains an API `ProtoToJson.java` that can be used as Java library as well.\nAn example usage could be:\n```java\nDescriptorCache cache = DescriptorCache.fromDirectory(Path.of(\"descriptorCache\"));\nProtoToJson protoToJson = ProtoToJson.fromCache(cache);\n\nString json = protoToJson.toJson(Path.of(\"someProtoMessage.message\"));\n```\n\n# Desktop application\n\nUpon launch, the application reads its descriptor cache located at\n```\n%LOCALAPPDATA%\\ProtoToJson\\descriptorCache\n```\nIf it was started with an argument, the first argument will be interpreted as path\nto a binary protobuf message file to decode. Otherwise, the user is prompted to select one.\n\n![Select file dialog](https://i.imgur.com/82keZOg.png)\n\nThe tool then decodes the message into JSON, provided a corresponding descriptor was found,\nand displays the result in a text editor window.\n\n![Decoded message](https://i.imgur.com/EcrpK72.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzabuzard%2Fprototojson","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzabuzard%2Fprototojson","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzabuzard%2Fprototojson/lists"}