Project Stage | CI | Release | Issues | Discord |
---|---|---|---|---|
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.
- WebSockets
- Introspection-friendly
- 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
- Beginner-friendly
- Minimal / no type classes, implicits, or higher-kinded types
- Highly discoverable API
- Good type inference
- Minimal jargon
- Expert-friendly
- Type-safe
- No magic, edge cases, or surprises
- GraalVM-ready
- Fast performance
- Composable
ZIO Microservice supports the following protocols out-of-the-box:
- HTTP
- WebSockets
- gRPC
- Avro
Add in your build.sbt
:
libraryDependencies += "dev.zio" %% "zio-web-core" % "<version>"