Mu is a suite of libraries and tools that help you build and maintain microservices and clients in a functional style.
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, or Protobuf IDL files
- serialization of requests and responses into Avro/Protobuf
- building high-performance gRPC servers and clients
- handling of streaming requests and responses using FS2 Stream
- accessing metadata on services
- distributed tracing
- metrics reporting
- … and plenty more features on the way!
Mu is available for Scala 2.13 and 3.x.
However, Avro support for Scala 3 should be considered experimental because the Scala 3 version of Avro4s is not yet feature-complete. For example, fields with default values are not supported properly.
Most code samples in this documentation site use Scala 3 syntax.