ZIO Microservice supports the features you need to be productive:
- Endpoints. Define reliable and scalable endpoints concisely, type-safely, and composably.
- Protocol-Agnostic. Deploy endpoints to any supported protocol, including HTTP and gRPC.
- Stream-friendly. Handle requests and responses that are too big to fit in memory at once.
- Documentation. Generate documentation that is automatically in-sync with the endpoints.
- Client. Interact with an endpoint type-safely from Scala without writing any code.
- Middleware-friendly. Middleware is type-safe and compositional and can include built-in middleware or third-party middleware, or combinations.
- Metrics/Monitoring. Built-in integration with ZIO Metrics.
- Rate-limiting. Customizable rate-limiting with DDOS protection.
- Logging. Request/response logging in Common Log format.
- Via third-party libraries, pluggable authentication, authorization, persistence, caching, session management.
- High-performance. Fastest functional Scala library.
Compared to the competition, ZIO Microservice features:
- ZIO native
- Minimal / no type classes, implicits, or higher-kinded types
- Highly discoverable API
- Good type inference
- Minimal jargon
- No magic, edge cases, or surprises
- Fast performance
ZIO Microservice supports the following protocols out-of-the-box:
Add in your
libraryDependencies += "dev.zio" %% "zio-web-core" % "<version>"