{"id":15368251,"url":"https://github.com/keithamus/deno-protoc-parser","last_synced_at":"2025-09-21T03:31:18.601Z","repository":{"id":39586290,"uuid":"278739073","full_name":"keithamus/deno-protoc-parser","owner":"keithamus","description":"Parse Google Protocol Buffer DSL into an AST, which can be converted into JSON or back into the Protocol Buffer DSL.","archived":false,"fork":false,"pushed_at":"2022-05-31T14:23:34.000Z","size":345,"stargazers_count":2,"open_issues_count":0,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-01-03T11:46:21.170Z","etag":null,"topics":["ast","deno","protocol-buffer-dsl","protocol-buffers","protocol-buffers-parsing"],"latest_commit_sha":null,"homepage":"https://doc.deno.land/https/deno.land/x/protoc_parser/mod.ts","language":"TypeScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/keithamus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-07-10T21:44:52.000Z","updated_at":"2022-12-11T16:36:57.000Z","dependencies_parsed_at":"2022-08-28T23:12:37.117Z","dependency_job_id":null,"html_url":"https://github.com/keithamus/deno-protoc-parser","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keithamus%2Fdeno-protoc-parser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keithamus%2Fdeno-protoc-parser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keithamus%2Fdeno-protoc-parser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keithamus%2Fdeno-protoc-parser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/keithamus","download_url":"https://codeload.github.com/keithamus/deno-protoc-parser/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":233705879,"owners_count":18717203,"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":["ast","deno","protocol-buffer-dsl","protocol-buffers","protocol-buffers-parsing"],"created_at":"2024-10-01T13:28:50.293Z","updated_at":"2025-09-21T03:31:13.269Z","avatar_url":"https://github.com/keithamus.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Protoc Parser\n\nTake a Deno.Reader containing the [Google Protocol Buffer DSL](https://developers.google.com/protocol-buffers/docs/proto3) and convert it into a set of AST nodes which can be traversed and manipulated, and converted into JSON or back into the Protocol Buffer DSL.\n\nSee the [deno docs for more](https://doc.deno.land/https/deno.land/x/protoc_parser/mod.ts).\n\nNote this project is not affiliated with Google or any other company.\n\n\n### Example Usage\n\n```typescript\nimport {parse} from 'https://deno.land/x/protoc_parser/mod.ts'\n\nconst file = Deno.open('./my-file.proto')\ntry {\n  const proto = parse(file)\n  proto.accept({\n    visitMessage(messageNode) {\n        // Do stuff with message node\n    },\n    visitService(serviceNode) {\n        // Do stuff with service node\n    }\n    // etc\n  })\n} finally {\n  file.close()\n}\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeithamus%2Fdeno-protoc-parser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkeithamus%2Fdeno-protoc-parser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeithamus%2Fdeno-protoc-parser/lists"}