{"id":20944503,"url":"https://github.com/numq/protobuf-descriptor-parser","last_synced_at":"2025-12-29T02:09:02.221Z","repository":{"id":186847646,"uuid":"675646519","full_name":"numq/protobuf-descriptor-parser","owner":"numq","description":"Protocol Buffers descriptors parsing library","archived":false,"fork":false,"pushed_at":"2024-03-30T22:04:40.000Z","size":71,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-19T21:38:02.528Z","etag":null,"topics":["dynamic-message","parsing","protobuf","protobuf-java","protobuf-kotlin","protobuf-runtime","protocol-buffers","schema","wire-schema"],"latest_commit_sha":null,"homepage":"https://jitpack.io/#numq/protobuf-descriptor-parser/1.0.0","language":"Kotlin","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/numq.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,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-08-07T11:58:28.000Z","updated_at":"2023-08-10T14:00:45.000Z","dependencies_parsed_at":"2024-03-30T23:20:13.676Z","dependency_job_id":"eb27fd39-47dc-4086-aa4c-19631d716949","html_url":"https://github.com/numq/protobuf-descriptor-parser","commit_stats":null,"previous_names":["numq/protobuf-descriptor-parser"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numq%2Fprotobuf-descriptor-parser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numq%2Fprotobuf-descriptor-parser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numq%2Fprotobuf-descriptor-parser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numq%2Fprotobuf-descriptor-parser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/numq","download_url":"https://codeload.github.com/numq/protobuf-descriptor-parser/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243335419,"owners_count":20274904,"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":["dynamic-message","parsing","protobuf","protobuf-java","protobuf-kotlin","protobuf-runtime","protocol-buffers","schema","wire-schema"],"created_at":"2024-11-18T23:42:27.726Z","updated_at":"2025-12-29T02:09:02.195Z","avatar_url":"https://github.com/numq.png","language":"Kotlin","readme":"[![](https://jitpack.io/v/numq/protobuf-descriptor-parser.svg)](https://jitpack.io/#numq/protobuf-descriptor-parser)\n\n# Protobuf Descriptor Parser\n\nA library that provides extension functions for parsing the basic descriptors of *Protocol Buffers*, which allows you to\ncreate descriptors without code compilation, which is especially useful when working with dynamic messages.\n\n## Descriptors\n\nYou can change any parsing method by calling `toBuilder()`\n\n| Wire Schema\u003cbr/\u003eclass name | Protobuf Kotlin\u003cbr/\u003eclass name | Method name              |\n|----------------------------|--------------------------------|--------------------------|\n| EnumConstantElement        | EnumValueDescriptorProto       | enumValueDescriptorProto |\n| EnumElement                | EnumDescriptorProto            | enumDescriptorProto      |\n| FieldElement               | FieldDescriptorProto           | fieldDescriptorProto     |\n| MessageElement             | DescriptorProto                | descriptorProto          |\n| ProtoFileElement           | FileDescriptorProto            | fileDescriptorProto      |\n| RpcElement                 | MethodDescriptorProto          | methodDescriptorProto    |\n| ServiceElement             | ServiceDescriptorProto         | serviceDescriptorProto   |\n\n## Dependencies\n\n\u003e You can exclude dependencies if they are already in use\n\n### [Protobuf Kotlin](https://mvnrepository.com/artifact/com.google.protobuf/protobuf-kotlin)\n\n[Documentation](https://www.javadoc.io/doc/com.google.protobuf/protobuf-kotlin/3.23.4/com/google/protobuf/package-summary.html)\n**- v3.23.4**\n\n### [Wire Schema](https://mvnrepository.com/artifact/com.squareup.wire/wire-schema)\n\n[Documentation](https://square.github.io/wire/2.x/wire-schema/index.html?com/squareup/wire/schema/Schema.html) **-\nv4.8.0**\n\n## Installation\n\n### build.gradle\n\n```groovy\n    allprojects {\n        repositories {\n            maven { url 'https://jitpack.io' }\n        }\n    }\n\n    dependencies {\n        implementation('com.github.numq:protobuf-descriptor-parser:1.0.0') {\n            exclude group: 'com.google.protobuf', module: 'protobuf-kotlin'\n            exclude group: 'com.squareup.wire', module: 'wire-schema'\n        }\n    }\n```\n\n### build.gradle.kts\n\n```kotlin\n    allprojects {\n        repositories {\n            maven(\"https://jitpack.io\")\n        }\n    }\n    \n    dependencies {\n        implementation(\"com.github.numq:protobuf-descriptor-parser:1.0.0\") {\n            exclude(group = \"com.google.protobuf\", module = \"protobuf-kotlin\")\n            exclude(group = \"com.squareup.wire\", module = \"wire-schema\")\n        }\n    }\n```\n\n## Usage\n\n```kotlin\nval protoFile = File(\"./path/to/*.proto\")\nval schema = ProtoParser.parse(Location.get(path), proto.readText())\nval descriptor = Descriptors.FileDescriptor.buildFrom(schema.parseDescriptor(protoFile.name), arrayOf())\n// Use descriptor to create a dynamic message or for other purposes\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnumq%2Fprotobuf-descriptor-parser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnumq%2Fprotobuf-descriptor-parser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnumq%2Fprotobuf-descriptor-parser/lists"}