The ZIO library lets you easily solve problems in a variety of areas, including:
- Asynchronous Programming — Write asynchronous code as easily as synchronous code, handling all errors and never leaking resources.
- Concurrent Programming — Write concurrent code that scales easily, without locks or deadlocks, with maximal laziness and resource safety.
- Parallelism — Trivially partition work among many parallel fibers to make short work of CPU-intensive processing.
- Queueing — Build work processing flows and ration scarce resources with powerful asynchronous queues.
- Retrying — Create and test robust retry strategies that make your application resilient to transient failures.
- Scheduling — Schedule repeating work, like report generation or email notifications, using flexible, composable schedules.
- Streaming — Handle huge or infinite amounts of data in constant heap space with efficient, lazy, concurrent streams.
- Testing - Easily test effectual programs with powerful combinators, built-in property based testing, and seamless mocking capabilities.
Explore the pages above and learn how the simple, powerful building blocks in ZIO help you solve problems in these critical areas.