Features
High-performance
Build scalable applications with minimal runtime overhead
Type-safe
Use the full power of the Scala compiler to catch bugs at compile time
Concurrent
Easily build concurrent apps without deadlocks, race conditions, or complexity
Asynchronous
Write sequential code that looks the same whether itβs asynchronous or synchronous
Resource-safe
Build apps that never leak resources (including threads!), even when they fail
Testable
Inject test services into your app for fast, deterministic, and type-safe testing
Resilient
Build apps that never lose errors, and which respond to failure locally and flexibly
Functional
Rapidly compose solutions to complex problems from simple building blocks
Ecosystem
A rich ecosystem of libraries built on ZIO to solve real-world problems
ZIO HTTP
Type-safe, purely functional HTTP library for building high-performance web applications and APIs
- High-performance server based on Netty
- Type-safe and type-driven endpoints
- Support for both imperative and declarative endpoints
- Designed for cloud-native environments
- Support for both server and client applications
- WebSocket support for real-time applications
- Middleware system for cross-cutting concerns
- Integration with ZIO Schema for automatic codecs
- Built-in support for streaming responses
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
Learn ZIO with Zionomicon
The comprehensive guide to building scalable applications with ZIO
Zionomicon stands as the comprehensive guide to mastering ZIOβthe game-changing library that's revolutionizing how developers build robust Scala applications. It takes you from the fundamentals to advanced topics, teaching you how to build concurrent, resilient, and testable applications.
In Zionomicon, you'll master:
- Modeling complex business logic using ZIO's effect system
- Error handling and resource management with ZIO
- Concurrent and asynchronous programming patterns
- Building predictable and testable applications
- Structured dependency injection using ZIO's layer system
- And much more to explore!