Mu-Scala
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.
Features
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!
Specifically, Mu helps you to build gRPC servers and clients based on either Avro or Protobuf protocol definitions.
Scala versions
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.