Skip to content

A mikros framework protoc/buf plugin to extend features for services and applications

License

Notifications You must be signed in to change notification settings

mikros-dev/protoc-gen-mikros-extensions

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

protoc-gen-mikros-extensions

A mikros framework protoc/buf plugin to extend features for services and applications.

Features

The plugin adds the following features for generated source code:

  • New entities for domain, inbound and outbound messages.
  • Validation for wire input messages.
  • HTTP server routes for HTTP services.
  • Unit test helpers API for creating entities.
  • The possibility of extending the plugin using addons.

Building and installing

In order to compile and install the plugin locally you'll need to follow the steps:

  • Install the go compiler;
  • Execute the commands:
    • go generate
    • go build && go install

Protobuf extensions available

Usage

The plugin should be used according your environment, if you're using buf or protoc. It does not need any mandatory option to execute over your proto files.

But, if you want to use custom settings, the option named settings must point to a valid TOML file in your system. Its syntax details are described here.

Example

Using the extensions inside a .proto file:

syntax = "proto3";

package services.person;

import "protoc-gen-mikros-extensions/mikros/extensions/extensions.proto";

option go_package = "github.com/example/services/gen/go/services/person;person;";

service PersonService {
  rpc CreatePerson(CreatePersonRequest) returns (CreatePersonResponse);
}

message CreatePersonRequest {
  string name = 1;
  int32 age = 2;
}

message CreatePersonResponse {
  PersonWire person = 1;
}

message PersonWire {
  string id = 1;
  string name = 2;
  int32 age = 3;
}

For a more complete example, check the examples directory.

License

Apache License 2.0

About

A mikros framework protoc/buf plugin to extend features for services and applications

Topics

Resources

License

Stars

Watchers

Forks

Languages