{"id":28508093,"url":"https://github.com/vert-x3/vertx-grpc-java-compiler","last_synced_at":"2025-07-02T06:31:42.210Z","repository":{"id":54846447,"uuid":"81932757","full_name":"vert-x3/vertx-grpc-java-compiler","owner":"vert-x3","description":"gRPC Java Compiler for Vert.x","archived":false,"fork":false,"pushed_at":"2021-01-25T20:00:43.000Z","size":21134,"stargazers_count":5,"open_issues_count":0,"forks_count":8,"subscribers_count":24,"default_branch":"master","last_synced_at":"2025-06-08T21:08:23.074Z","etag":null,"topics":["grpc","java","non-blocking","reactive","vertx"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"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/vert-x3.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-02-14T10:15:14.000Z","updated_at":"2021-04-07T22:22:44.000Z","dependencies_parsed_at":"2022-08-14T04:40:21.239Z","dependency_job_id":null,"html_url":"https://github.com/vert-x3/vertx-grpc-java-compiler","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/vert-x3/vertx-grpc-java-compiler","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vert-x3%2Fvertx-grpc-java-compiler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vert-x3%2Fvertx-grpc-java-compiler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vert-x3%2Fvertx-grpc-java-compiler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vert-x3%2Fvertx-grpc-java-compiler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vert-x3","download_url":"https://codeload.github.com/vert-x3/vertx-grpc-java-compiler/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vert-x3%2Fvertx-grpc-java-compiler/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263086582,"owners_count":23411739,"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":["grpc","java","non-blocking","reactive","vertx"],"created_at":"2025-06-08T21:08:05.660Z","updated_at":"2025-07-02T06:31:42.201Z","avatar_url":"https://github.com/vert-x3.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/vert-x3/vertx-grpc-java-compiler.svg?branch=master)](https://travis-ci.org/vert-x3/vertx-grpc-java-compiler)\n\n# vertx-grpc-java-compiler 1.20.0\n\nThis is a drop-in replacement gRPC compiler for java targeting the Vert.x programming model.\n\nBesides the normal generation that the official compiler does it adds 2 extra classes to the generation:\n\n* an abstract class \u003cServiceName\u003eVertxImplBase\n* a final class \u003cServiceName\u003eVertxStub\n\nThese new classes follow the vert.x programming model closer than the generic ones so it will feel more\nnatural to the end user to choose these instead of the official ones. There is no difference between the\nimplementations since the new generated classes only wrap the vert.x types into the gRPC expected types.\n\n## Build it\n\n**IMPORTANT**: Read the additional modification made to the code section (below)\n\ngRPC assumes you already have a couple of dependencies on your system:\n\n* Docker\n* A working Bash shell\n* maven\n\nDocker will be used to provide a set of cross compilers and the output of the build will end up on this directory.\n\nMaven will then collect the binaries and archive into the local repository.\n\n## Build the plugin\n\n```\nsudo ./scripts/build.sh\n```\n\nNote that sudo is used here since in Fedora docker requires it, if you don't need it for your case don't use sudo.\n\n## Archive the maven artifacts\n\n```\nmvn install\n```\n## Update the code\n\nThe process is quite manual.\n\n1. Run a diff between the gRPC tags, replace the versions in the [link](https://github.com/grpc/grpc-java/compare/v1.20.0...v1.20.x)\n2. If there are changes in the CPP code try to apply the diff/manual merge\n3. Bump the versions on `pom.xml` and `Makefile` to match the new one.\n4. Build\n\nWhen bumping the `protobuf` dependency the following steps are required:\n\n1. Download the `tar.gz` file to the root of the project.\n2. Update travis to cache the new version.\n3. Update the `Makefile` to use the new version.\n\n**IMPORTANT** A few changes are applied in the code:\n\n1. Stub constructors are made `public` instead of `private`. It improves Java 9 support where reflective calls should not use `setAccessible`. Changes are made in `java_generator.cpp` (such as: https://github.com/vert-x3/vertx-grpc-java-compiler/pull/9/commits/69d8a4fcc2b4d37a265a3f1ae8d4ac203df420dd)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvert-x3%2Fvertx-grpc-java-compiler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvert-x3%2Fvertx-grpc-java-compiler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvert-x3%2Fvertx-grpc-java-compiler/lists"}