{"id":19944138,"url":"https://github.com/wildfly-extras/wildfly-grpc-feature-pack","last_synced_at":"2026-01-29T09:41:36.494Z","repository":{"id":36966478,"uuid":"490682295","full_name":"wildfly-extras/wildfly-grpc-feature-pack","owner":"wildfly-extras","description":"WildFly gRPC feature pack","archived":false,"fork":false,"pushed_at":"2026-01-27T06:55:47.000Z","size":1356,"stargazers_count":8,"open_issues_count":8,"forks_count":10,"subscribers_count":8,"default_branch":"main","last_synced_at":"2026-01-27T19:55:52.826Z","etag":null,"topics":["feature-pack","galleon","grpc","wildfly"],"latest_commit_sha":null,"homepage":"https://wildfly-extras.github.io/wildfly-grpc-feature-pack/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wildfly-extras.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":"dco.txt","cla":null}},"created_at":"2022-05-10T12:15:50.000Z","updated_at":"2026-01-27T06:55:49.000Z","dependencies_parsed_at":"2023-01-17T09:16:17.959Z","dependency_job_id":"b8e1e098-65a9-4a73-9515-020d1fcffea9","html_url":"https://github.com/wildfly-extras/wildfly-grpc-feature-pack","commit_stats":null,"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/wildfly-extras/wildfly-grpc-feature-pack","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wildfly-extras%2Fwildfly-grpc-feature-pack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wildfly-extras%2Fwildfly-grpc-feature-pack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wildfly-extras%2Fwildfly-grpc-feature-pack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wildfly-extras%2Fwildfly-grpc-feature-pack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wildfly-extras","download_url":"https://codeload.github.com/wildfly-extras/wildfly-grpc-feature-pack/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wildfly-extras%2Fwildfly-grpc-feature-pack/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28874260,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-29T07:35:32.468Z","status":"ssl_error","status_checked_at":"2026-01-29T07:33:31.463Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["feature-pack","galleon","grpc","wildfly"],"created_at":"2024-11-13T00:19:13.909Z","updated_at":"2026-01-29T09:41:36.482Z","avatar_url":"https://github.com/wildfly-extras.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WildFly gRPC\n\nFeature pack to bring gRPC support to WildFly. gRPC services are registered against a gRPC server listening, by default, to port 9555.\n\nOnly gRPC services are supported at the moment. Support for gRPC clients is coming soon.\n\n# Get Started\n\nTo build the feature pack, simply run\n\n```shell\nmvn install\n```\n\nThis will build everything, and run the testsuite.\n\nOnce built you can provision a server with gRPC support using Galleon provisioning. An example using the \n`org.wildfly.plugins:wildfly-maven-plugin`:\n\n```xml\n\u003cplugin\u003e\n    \u003cgroupId\u003eorg.wildfly.plugins\u003c/groupId\u003e\n    \u003cartifactId\u003ewildfly-maven-plugin\u003c/artifactId\u003e\n    \u003cconfiguration\u003e\n        \u003cfeature-packs\u003e\n            \u003cfeature-pack\u003e\n                \u003cgroupId\u003eorg.wildfly\u003c/groupId\u003e\n                \u003cartifactId\u003ewildfly-galleon-pack\u003c/artifactId\u003e\n                \u003cversion\u003e${version.wildfly}\u003c/version\u003e\n            \u003c/feature-pack\u003e\n            \u003cfeature-pack\u003e\n                \u003cgroupId\u003eorg.wildfly.extras.grpc\u003c/groupId\u003e\n                \u003cartifactId\u003ewildfly-grpc-feature-pack\u003c/artifactId\u003e\n                \u003cversion\u003e${version.wildfly.grpc}\u003c/version\u003e\n            \u003c/feature-pack\u003e\n        \u003c/feature-packs\u003e\n        \u003clayers\u003e\n            \u003clayer\u003ecore-server\u003c/layer\u003e\n            \u003clayer\u003eweb-server\u003c/layer\u003e\n            \u003clayer\u003egrpc\u003c/layer\u003e\n        \u003c/layers\u003e\n        \u003cgalleon-options\u003e\n            \u003cjboss-fork-embedded\u003e${galleon.fork.embedded}\u003c/jboss-fork-embedded\u003e\n        \u003c/galleon-options\u003e\n        \u003cprovisioning-dir\u003ewildfly\u003c/provisioning-dir\u003e\n        \u003clog-provisioning-time\u003e${galleon.log.time}\u003c/log-provisioning-time\u003e\n        \u003coffline\u003etrue\u003c/offline\u003e\n    \u003c/configuration\u003e\n\u003c/plugin\u003e\n```\n\nYou can also configure this with the Galleon CLI tool:\n\n```bash\ngalleon.sh install org.wildfly:wildfly-galleon-pack:$WILDFLY_VERSION --dir=wildfly-grpc\ngalleon.sh install org.wildfly.extras.grpc:wildfly-grpc-feature-pack:$GRPC_VERSION --dir=wildfly-grpc\n```\n\n# Examples\n\nEach example consists of three modules:\n\n1. Proto: Contains the proto definitions \n2. Service: Contains the gRPC service\n3. Client: Contains a client to call the deployed gRPC service\n\nBefore running the examples, please make sure that all necessary dependencies are available in your local maven repository:\n\n```shell\nmvn install -P examples\n```\n\n## Hello World\n\nThe `helloworld` example is a slightly modified version of the `helloworld` example from [gRPC Java examples](https://github.com/grpc/grpc-java/tree/master/examples).\n\n### Service\n\nTo build the `helloworld` service, provision a WildFly server with the gRPC subsystem and any necessary certificate files,\nand deploy the service, run:\n\n\u003ccode\u003emvn wildfly:run -P examples -pl examples/helloworld/service -Dssl=*SSL*\u003c/code\u003e\n\nwhere *SSL* is either\n\n* none: plaintext\n* oneway: server identity is verified\n* twoway: both server and client identities are verified\n\n### Client\n\nThe `helloworld` client is a simple Java application. To build the client and call to the gRPC service, run:\n\n\u003ccode\u003emvn exec:java -P examples -pl examples/helloworld/client -Dexec.args=\"Bob *SSL*\"\u003c/code\u003e\n\nwhere, again, *SSL* is either \"none\", \"oneway\", or \"twoway\"\n\nAlternatively you could also use tools like [BloomRPC](https://github.com/uw-labs/bloomrpc)\nor [gRPCurl](https://github.com/fullstorydev/grpcurl) to invoke the service:\n\n```shell\ngrpcurl \\ # plaintext\n  -proto examples/helloworld/proto/src/main/proto/helloworld.proto \\\n  -plaintext \\\n  -d '{\"name\":\"Bob\"}' \\\n  localhost:9555 helloworld.Greeter/SayHello\n```\nor\n```shell\ngrpcurl \\ # oneway\n  -proto examples/helloworld/proto/src/main/proto/helloworld.proto \\\n  -cacert examples/helloworld/client/src/main/resources/client.truststore.pem \\\n  -d '{\"name\":\"Bob\"}' \\\n  localhost:9555 helloworld.Greeter/SayHello\n```\nor\n```shell\ngrpcurl \\ # twoway\n  -proto examples/helloworld/proto/src/main/proto/helloworld.proto \\\n  -cacert examples/helloworld/client/src/main/resources/client.truststore.pem \\\n  -cert examples/helloworld/client/src/main/resources/client.keystore.pem \\\n  -key examples/helloworld/client/src/main/resources/client.key.pem \\\n  -d '{\"name\":\"Bob\"}' \\\n  localhost:9555 helloworld.Greeter/SayHello\n```\n**Note.** To use the current versions of the certificate files with grpcurl, it is necessary to set\n\n   \u003ccode\u003eexport GODEBUG=x509ignoreCN=0\u003c/code\u003e\n\nThis restriction will be removed in the future.\n\n## Chat\n\nThe `chat` example is taken from [gRPC by example](https://github.com/saturnism/grpc-by-example-java). \n\n### Service\n\nTo build the `chat` service, provision a WildFly server with the gRPC subsystem and any necessary certificate files,\nand deploy the service, run:\n\n\u003ccode\u003emvn wildfly:run -P examples -pl examples/chat/service -Dssl=*SSL*\u003c/code\u003e\n\nwhere *SSL* is either\n\n* none: plaintext\n* oneway: server identity is verified\n* twoway: both server and client identities are verified\n\n\n### Client\n\nThe `chat` client is a JavaFX application. To build the client and connect to the gRPC service, run:\n\n\u003ccode\u003emvn javafx:run -P examples -pl examples/chat/client -Dexec.args=\"*SSL*\"\u003c/code\u003e\n\nTo see the `chat` example in action, you should start multiple chat clients. \n\n# Feature Pack Documentation\n\nThis feature pack uses the [WildFly Galleon Plugins](https://github.com/wildfly/galleon-plugins) to publish its \nfeature pack documentation. The documentation is available using the following links:\n\n- https://wildfly-extras.github.io/wildfly-grpc/ - Contains the latest documentation\n- https://wildfly-extras.github.io/wildfly-grpc/\u003csem-version\u003e - Contains the documentation for a specific version\n\n# Licenses\n\nThis project uses the following licenses:\n\n* [Apache License 2.0](https://repository.jboss.org/licenses/apache-2.0.txt)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwildfly-extras%2Fwildfly-grpc-feature-pack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwildfly-extras%2Fwildfly-grpc-feature-pack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwildfly-extras%2Fwildfly-grpc-feature-pack/lists"}