Mu is a suite of libraries and tools that help you build and maintain microservices and clients in a functional style.

Getting Started

If you’re new to Mu-Scala, check out the Getting Started guide and the tutorials.


While you focus on implementing the business logic for your service, let Mu take care of the boilerplate and non-functional requirements, including:

  • generation of model classes, service interfaces and clients from Avro, Protobuf or OpenAPI IDL files
  • serialization of requests and responses into Avro/Protobuf/JSON
  • building high-performance gRPC servers and clients
  • building HTTP REST servers and clients using http4s
  • handling of streaming requests and responses using either FS2 Stream or Monix Observable
  • schema management and schema evolution
  • metrics reporting
  • … and plenty more features on the way!

Specifically, Mu helps you to build:

  • gRPC servers and clients based on either Avro or Protobuf protocol definitions
  • REST servers and clients based on OpenAPI definitions