NAME

Module::Starter::Protobuf - A Module::Starter plugin for generating Protocol Buffers client libraries

VERSION

Version 0.03

SYNOPSIS

use Module::Starter qw(Module::Starter::Protobuf);

# Or from the command line:
# PROTOBUF_FILES=protos/my_service.proto module-starter --module=My::Client --plugin=Module::Starter::Protobuf

DESCRIPTION

This is a Module::Starter plugin that automates the generation of skeletal CPAN distributions from Protocol Buffers (proto3) schemas. It runs the protoc compiler to generate low-level serialization classes using the upb C/XS compiler plugin and automatically generates high-level client wrappers with idiomatic gRPC call methods.

METHODS

create_distro

Intercepts and validates the protobuf configuration parameters from arguments or environment variables.

create_modules

Generates the low-level protobuf serialization classes and the high-level client wrapper modules.

create_t

Generates the dynamic service integration tests (t/01-service.t) under the target directory, including a mock Google::gRPC::Client constructor that accepts both HashRef and list options.

Makefile_PL_guts

Injects the required dependencies (Moo, Log::Any, Google::Auth, Google::gRPC::Client, Protobuf) into the generated Makefile.PL.

AUTHOR

C.J. Collier <cjac@google.com>

LICENSE AND COPYRIGHT

Copyright (C) 2026 Google LLC

This program is released under the Apache 2.0 license.