ZIO Ecosystem
ZIO has a rich ecosystem of libraries and tools that enhance its capabilities and provide additional functionality. This ecosystem includes libraries for various purposes, such as web development, data processing, testing, and more.
Browse the libraries by purpose in the sidebar, or jump to the complete lists below: the official libraries, maintained by the ZIO team under the ZIO Organization, the community libraries, maintained by members of the ZIO community, and the compatible libraries that work with ZIO.
Below are some of the highlights from the official libraries:
Modular, zero-dependency building blocks for modern Scala applications
- Type-safe schemas with automatic codec derivation
- Zero lock-in โ no dependency on ZIO or any effect system
- Works with any Scala stack: ZIO, Cats Effect, Kyo, Ox, Akka, or plain Scala
- Modular โ import only the blocks you need
- Full cross-platform support for JVM and Scala.js
- Full cross-version support for Scala 2.13 and Scala 3.x
- High-performance implementations avoiding boxing and unnecessary allocations
- Includes Schema, Chunk, Scope, Docs, TypeId, Context, MediaType, and Ring Buffer blocks
ZIO HTTP
Type-safe, purely functional HTTP library for high-performance web apps and APIs
- High-performance server based on Netty
- Type-safe and type-driven endpoints
- WebSocket support for real-time applications
- Middleware system for cross-cutting concerns
ZIO Streams
Powerful, composable, and type-safe streaming library for working with large or infinite data
- Process infinite streams with finite memory resource
- Automatic backpressure handling
- Rich set of stream combinators
- Non-blocking and asynchronous processing
ZIO Test
Feature-rich testing framework with powerful assertions and property-based testing
- Property-based testing out of the box
- Deterministic testing of concurrent code
- Test aspects for reusable configurations
- Integration with JUnit and other frameworks
ZIO STM
Software Transactional Memory for safe, composable concurrent programming
- Atomic, isolated transactions
- Composable concurrent operations
- No deadlocks or race conditions
- Automatic retry of interrupted transactions
ZIO Schema
Declarative schema definitions for data structures with automatic derivation
- Reification of data structures
- Manual and automatic schema derivation
- Built-in codecs for JSON, Protobuf, Avro, and Thrift
- Schema transformations and migrations
ZIO Config
Type-safe, composable configuration management with automatic documentation
- Type-safe configuration descriptions
- Multiple source support (files, env vars)
- Automatic documentation generation
- Validation with detailed error reporting
ZIO Logging
High-performance, structured logging with contextual information
- Structured logging for ZIO applications
- Multiple backend support (SLF4J, JPL, Console)
- Context-aware logging with MDC support
- Log correlation across async boundaries
ZIO JSON
Fast, secure JSON library with tight ZIO integration
- High-performance parsing and encoding
- Hardened against adversarial JSON payloads
- Automatic derivation, no shapeless required
- Human- and machine-readable error messages
ZIO Kafka
A purely functional, streams-based client for Apache Kafka
- High-level streaming API on top of the Java Kafka client
- Higher throughput than the Java client in most workloads
- Parallel per-partition consumption
- Custom serialization and deserialization support
Official Librariesโ
Official ZIO libraries are hosted in the ZIO organization on GitHub, and are generally maintained by core contributors to ZIO.
Development Statusโ
Each project in the ZIO organization namespace has a Stage Badge which indicates the current status of that project:
- Production Ready โ The project is stable and already used in production. We can expect reliability for the implemented use cases.
- Development โ The project already has RC or milestone releases, but is still under active development. We should not expect full stability yet.
- Experimental โ The project is not yet released, but an important part of the work is already done.
- Research โ The project is at the design stage, with some sketches of work but nothing usable yet.
- Concept โ The project is just an idea, development hasn't started yet.
- Deprecated โ The project is not maintained anymore, and we don't recommend its usage.
Web & APIsโ
- ZIO HTTP โ A type-safe, composable, and feature-rich HTTP library built on top of ZIO.
Data Accessโ
- ZIO DynamoDB โ Simple, type-safe, and efficient access to AWS DynamoDB.
- ZIO Query โ A library for writing optimized queries to data sources in a compositional style, with batching, pipelining, and caching.
- ZIO Quill โ A quoted domain-specific language for expressing queries in Scala and executing them as SQL or CQL.
- ZIO Redis โ A type-safe and performant ZIO-native Redis client.
- ZIO Rocksdb โ A ZIO-based interface to RocksDB.
Messaging & Pipelinesโ
- ZIO AMQP โ A ZIO-based wrapper around the RabbitMQ client with a streaming interface to AMQP queues.
- ZIO Kafka โ A purely functional, streams-based Kafka client for ZIO.
- ZIO SQS โ A ZIO-powered client for AWS SQS, built on top of ZIO AWS.
Serialization & Formatsโ
- ZIO Bson โ A BSON library with tight ZIO integration and native support for BSON types.
- ZIO JSON โ A fast and secure JSON library with tight ZIO integration.
- ZIO Parser โ A library for constructing parsers and pretty printers from invertible syntax descriptions.
- ZIO Schema โ A library for modeling the schema of data structures as first-class values, enabling serialization, deserialization, and data migration.
- ZIO Streams Compress โ A library that integrates compression algorithms and archive formats with ZIO Streams.
Observabilityโ
- ZIO Logging โ Simple logging for ZIO applications, with correlation, context, and pluggable backends.
- ZIO Metrics Connectors โ Integrations between ZIO metrics and monitoring systems such as Prometheus and Datadog.
- ZIO Profiling โ A collection of profilers for understanding the runtime behavior of ZIO programs.
- ZIO Telemetry โ Purely functional and type-safe clients for OpenTracing, OpenCensus, and OpenTelemetry.
Cloud & Infrastructureโ
- ZIO AWS โ A ZIO wrapper for all AWS services, built on the AWS Java SDK v2.
- ZIO FTP โ A thin wrapper over (s)FTP clients for ZIO.
- ZIO Lambda โ A ZIO-based AWS Custom Runtime compatible with GraalVM Native Image.
- ZIO S3 โ A thin wrapper over the S3 async client for ZIO.
Config & App Wiringโ
- ZIO CLI โ A library for rapidly building powerful command-line applications powered by ZIO.
- ZIO Config โ A ZIO-based library that extends ZIO's
Configwith support for various sources and automatic derivation. - ZIO Process โ A library for interacting with external processes and command-line programs, backed by ZIO Streams.
Resilience & Scalingโ
- ZIO Cache โ A library for optimizing the performance of an application by caching values.
Types & Abstractionsโ
- Izumi Reflect โ A fast, lightweight, portable and efficient alternative to
TypeTagfromscala-reflect. - ZIO 2.x Interop Cats 2.x โ An interoperability layer that lets ZIO 2 work with Cats Effect 2 and its ecosystem.
- ZIO Constraintless โ A library for building programs as descriptions with maximum polymorphism and modularity, and zero abstraction leakage.
- ZIO Direct Style โ A library for writing ZIO programs in a direct, imperative style, based on the Monadless paradigm.
- ZIO Prelude โ A lightweight, distinctly Scala take on functional abstractions, with tight ZIO integration.
Testing & Dev Toolsโ
- ZIO IntelliJ โ A plugin for IntelliJ IDEA that brings enhancements when using ZIO in your projects.
- ZIO SBT โ A collection of sbt plugins that simplify the development of ZIO projects.
Community Librariesโ
In this section we are going to introduce some of the most important libraries that have first-class ZIO support from the community.
If you know a useful library that has first-class ZIO support, please consider submitting a pull request to add it to this list.
Web & APIsโ
- Caliban โ A purely functional library for creating GraphQL servers and clients in Scala.
- Tapir โ A library to describe HTTP APIs, expose them as a server, consume them as a client, and document them automatically, with first-class ZIO support.
- ZIO gRPC โ A library for writing purely functional gRPC servers and clients with ZIO.
Data Accessโ
- Decrel โ A library for declarative programming using relations between data, with automatic batching, parallelization, and caching.
- Mongo4cats โ A functional and idiomatic interface for MongoDB, with a dedicated ZIO 2 module.
- TranzactIO โ A ZIO wrapper for database access libraries, currently Doobie and Anorm.
- ZIO Elasticsearch โ A type-safe and streaming-friendly ZIO-native Elasticsearch client.
- ZIO LMDB โ An embedded, ACID, key-value database for ZIO, stored in a single file.
- ZIO MongoDB โ A ZIO wrapper around the official MongoDB Java driver, with compile-time codecs and a type-safe query DSL.
Messaging & Pipelinesโ
- tamer โ A multi-functional Kafka connector for producing data, based on ZIO Kafka.
- ZIO Kinesis โ A ZIO-based AWS Kinesis client for consuming and producing data.
- ZIO Spark โ A functional wrapper around Spark that makes it work with ZIO and improves error management.
Serialization & Formatsโ
- ZIO Apache Parquet โ A ZIO-powered library for reading and writing Parquet files without running a Spark cluster.
Observabilityโ
- LogStage โ A zero-cost structural logging framework for Scala and Scala.js.
- Tofu ZIO 2 Logging โ Logging integration of Tofu, a functional toolkit based on the tagless-final approach, with ZIO 2.
Cloud & Infrastructureโ
- Scala k8s โ A Kubernetes client, data models, and typesafe manifest generation for Scala, Scala.js, and Scala Native.
- ZIO K8s โ An idiomatic ZIO client for the Kubernetes API, with code generation for custom resources and operators.
Config & App Wiringโ
- Distage โ A compile-time safe, transparent, and debuggable dependency injection framework for pure FP Scala.
Resilience & Scalingโ
- Rezilience โ A ZIO-native fault tolerance library with policies for making asynchronous systems more resilient to failures.
- Shard โ A library for distributing entities across multiple servers and sending them messages by ID, without knowing their location. It is the successor of Shardcake.
Types & Abstractionsโ
- Neotype โ A friendly newtype library for Scala 3 with compile-time validation and integrations with ZIO JSON, ZIO Quill, ZIO Config, and ZIO Schema.
Testing & Dev Toolsโ
- MUnit ZIO โ An integration library between MUnit and ZIO.
- ZIO Test Akka HTTP โ An Akka HTTP route test kit for ZIO Test.
Compatible Librariesโ
List of ZIO compatible libraries:
- d4s โ "Dynamo DB Database done Scala way". A library that allows accessing the DynamoDB in a purely functional way
- Edomata โ Production ready event-driven automata for Scala, Scala.js and scala native
- elastic4s โ Elasticsearch Scala Client - Reactive, Non Blocking, Type Safe, HTTP Client
- Lepus โ Your principled, purely functional, non-blocking RabbitMQ client for scala, scala js and scala native built on top of fs2
- neotypes โ A Scala lightweight, type-safe & asynchronous driver for neo4j
- scanamo โ Simpler DynamoDB access for Scala
- sttp โ The Scala HTTP client you always wanted!
- doobie โ Functional JDBC layer for Scala.
- fs2 โ Compositional, streaming I/O library for Scala
- http4s โ A minimal, idiomatic Scala interface for HTTP
- Automorph - RPC in a few lines of Scala code
- ldbc โ Pure functional JDBC layer for Scala 3 built on Cats Effect, usable with ZIO through the
ldbc-zio-interopmodule - Iron โ Strong type constraints for Scala 3, with the
iron-zio,iron-zio-json, andiron-zio-blocks-schemamodules for ZIO - sttp-ai โ A Scala toolkit for working with third-party LLMs such as OpenAI and Claude, with a ZIO backend