Skip to content
Multi-Vendor Service Mesh Interoperation
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.


CircleCI Slack License

Hamlet specifies a set of API standards for enabling service mesh federation. The API specification was realized as a collaborative effort with service mesh vendors viz. Google, HashiCorp, Pivotal and VMware.

The specification currently consists of the following APIs.


Please see if you'd like to extend this project's core to implement functionality for an owning or consuming federated service mesh. You can find concrete extension samples in the examples directory.


To compile a Protobuf file into Go, you can use the following command.

$ protoc -I api/types/v1alpha1/ federated_service.proto --go_out=api/

To download the external dependencies, use the following commands.

$ mkdir -p external/google/rpc/
$ curl -L -o external/google/rpc/status.proto

To compile a Protobuf into Go along with the necessary gRPC server and client stubs, you can use the following command.

$ protoc -I external/ -I api/resourcediscovery/v1alpha1/ resource_discovery.proto --go_out=plugins=grpc:api/


The project relies on the mockgen tool for generating gRPC mocks for unit tests. Please make sure that you have it installed before proceeding.

1. Generate mocks.

$ go generate ./...

2. Run tests using Ginkgo or go test.

$ ginkgo -v ./...


$ go test -v ./...


Please see if you'd like to contribute.


Hamlet is licensed under the Apache License, Version 2.0. See the LICENSE file for the full license text.

You can’t perform that action at this time.