zio
Members list
Type members
Classlikes
Evidence type A
is not equal to type B
.
Evidence type A
is not equal to type B
.
Attributes
- Companion
- object
- Supertypes
-
trait Serializableclass Objecttrait Matchableclass Any
A Cached is a possibly resourceful value that is loaded into memory, and which can be refreshed either manually or automatically.
A value of type CanFail[E]
provides implicit evidence that an effect with error type E
can fail, that is, that E
is not equal to Nothing
.
A Chunk[A]
represents a chunk of values of type A
. Chunks are designed are usually backed by arrays, but expose a purely functional, safe interface to the underlying elements, and they become lazy on operations that would be costly with arrays, such as repeated concatenation.
A Chunk[A]
represents a chunk of values of type A
. Chunks are designed are usually backed by arrays, but expose a purely functional, safe interface to the underlying elements, and they become lazy on operations that would be costly with arrays, such as repeated concatenation.
The implementation of balanced concatenation is based on the one for Conc-Trees in "Conc-Trees for Functional and Parallel Programming" by Aleksandar Prokopec and Martin Odersky. http://aleksandar-prokopec.com/resources/docs/lcpc-conc-trees.pdf
NOTE: For performance reasons Chunk
does not box primitive types. As a result, it is not safe to construct chunks from heterogeneous primitive types.
Attributes
- Companion
- object
- Supertypes
-
trait Serializabletrait ChunkLike[A]trait IndexedSeq[A]trait IndexedSeq[A]trait Seq[A]trait Seq[A]trait Equalstrait Iterable[A]trait Iterable[A]trait IterableOnce[A]class Objecttrait Matchableclass AnyShow all
- Self type
-
Chunk[A]
Attributes
- Companion
- class
- Supertypes
-
trait StrictOptimizedSeqFactory[Chunk]trait SeqFactory[Chunk]trait IterableFactory[Chunk]trait Serializableclass Objecttrait Matchableclass AnyShow all
- Self type
-
Chunk.type
A ChunkBuilder[A]
can build a Chunk[A]
given elements of type A
. ChunkBuilder
is a mutable data structure that is implemented to efficiently build chunks of unboxed primitives and for compatibility with the Scala collection library.
A ChunkBuilder[A]
can build a Chunk[A]
given elements of type A
. ChunkBuilder
is a mutable data structure that is implemented to efficiently build chunks of unboxed primitives and for compatibility with the Scala collection library.
Attributes
- Companion
- object
- Supertypes
- Known subtypes
Attributes
- Companion
- class
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
ChunkBuilder.type
ChunkLike
represents the capability for a Chunk
to extend Scala's collection library. Because of changes to Scala's collection library in 2.13, separate versions of this trait are implemented for 2.12 and 2.13 / Dotty. This allows code in Chunk
to be written without concern for the implementation details of Scala's collection library to the maximum extent possible.
ChunkLike
represents the capability for a Chunk
to extend Scala's collection library. Because of changes to Scala's collection library in 2.13, separate versions of this trait are implemented for 2.12 and 2.13 / Dotty. This allows code in Chunk
to be written without concern for the implementation details of Scala's collection library to the maximum extent possible.
Note that IndexedSeq
is not a referentially transparent interface in that it exposes methods that are partial (e.g. apply
), allocate mutable state (e.g. iterator
), or are purely side effecting (e.g. foreach
). Chunk
extends IndexedSeq
to provide interoperability with Scala's collection library but users should avoid these methods whenever possible.
Attributes
- Supertypes
-
trait IndexedSeq[A]trait IndexedSeq[A]trait Seq[A]trait Seq[A]trait Equalstrait Iterable[A]trait Iterable[A]trait IterableOnce[A]class Objecttrait Matchableclass AnyShow all
- Known subtypes
-
class Chunk[A]
- Self type
-
Chunk[A]
A zio.Config describes the structure of some configuration data.
A zio.Config describes the structure of some configuration data.
Attributes
- Companion
- object
- Supertypes
-
class Objecttrait Matchableclass Any
- Known subtypes
-
trait Composite[A]class Described[A]class Fallback[A]class FallbackWith[A]class Optional[A]class Lazy[A]class Nested[A]class Sequence[A]class Table[V]trait Primitive[A]object Boolclass Constant[A]object Decimalobject Durationclass Failobject Integerobject LocalDateobject LocalDateTimeobject LocalTimeobject OffsetDateTimeobject SecretTypeobject TextShow all
- Self type
-
Config[A]
A ConfigProvider is a service that provides configuration given a description of the structure of that configuration.
A ConfigProvider is a service that provides configuration given a description of the structure of that configuration.
Attributes
- Companion
- object
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
Attributes
- Companion
- trait
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
ConfigProvider.type
Attributes
- Companion
- object
- Supertypes
-
trait Serializableclass Objecttrait Matchableclass Any
- Known subtypes
-
object ConsoleLive
- Self type
Attributes
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
DefaultServices.type
A queue that can only be dequeued.
A queue that can only be dequeued.
Attributes
- Supertypes
-
trait Serializableclass Objecttrait Matchableclass Any
- Known subtypes
-
class Queue[A]
A Differ[Value, Patch]
knows how to compare an old value and new value of type Value
to produce a patch of type Patch
that describes the differences between those values. A Differ
also knows how to apply a patch to an old value to produce a new value that represents the old value updated with the changes described by the patch.
A Differ[Value, Patch]
knows how to compare an old value and new value of type Value
to produce a patch of type Patch
that describes the differences between those values. A Differ
also knows how to apply a patch to an old value to produce a new value that represents the old value updated with the changes described by the patch.
A Differ
can be used to construct a FiberRef
supporting compositional updates using the FiberRef.makePatch
constructor.
The Differ
companion object contains constructors for Differ
values for common data types such as Chunk
, Map
, and Set``. In addition,
Differvalues can be transformed using the
transformoperator and combined using the
orElseEitherand
zipoperators. This allows creating
Differ` values for arbitrarily complex data types compositionally.
Attributes
- Companion
- object
- Supertypes
-
trait Serializableclass Objecttrait Matchableclass Any
- Self type
-
Attributes
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
Duration.type
Attributes
- Supertypes
-
class Objecttrait Matchableclass Any
Attributes
- Supertypes
-
class AnyValtrait Matchableclass Any
Attributes
- Supertypes
-
class AnyValtrait Matchableclass Any
Describes a strategy for evaluating multiple effects, potentially in parallel. There are three possible execution strategies: Sequential
, Parallel
, and ParallelN
.
Describes a strategy for evaluating multiple effects, potentially in parallel. There are three possible execution strategies: Sequential
, Parallel
, and ParallelN
.
Attributes
- Companion
- object
- Supertypes
-
class Objecttrait Matchableclass Any
- Known subtypes
Attributes
- Companion
- class
- Supertypes
- Self type
-
ExecutionStrategy.type
An executor is responsible for executing actions. Each action is guaranteed to begin execution on a fresh stack frame.
An Exit[E, A]
describes the result of executing an IO
value. The result is either succeeded with a value A
, or failed with a Cause[E]
.
An Exit[E, A]
describes the result of executing an IO
value. The result is either succeeded with a value A
, or failed with a Cause[E]
.
Attributes
- Companion
- object
- Supertypes
- Known subtypes
- Self type
-
A fiber is a lightweight thread of execution that never consumes more than a whole thread (but may consume much less, depending on contention and asynchronicity). Fibers are spawned by forking ZIO effects, which run concurrently with the parent effect.
A fiber is a lightweight thread of execution that never consumes more than a whole thread (but may consume much less, depending on contention and asynchronicity). Fibers are spawned by forking ZIO effects, which run concurrently with the parent effect.
Fibers can be joined, yielding their result to other fibers, or interrupted, which terminates the fiber, safely releasing all resources.
def parallel[A, B](io1: Task[A], io2: Task[B]): Task[(A, B)] =
for {
fiber1 <- io1.fork
fiber2 <- io2.fork
a <- fiber1.join
b <- fiber2.join
} yield (a, b)
Attributes
- Companion
- object
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
Represents a failure in a fiber. This could be caused by some non- recoverable error, such as a defect or system error, by some typed error, or by interruption (or combinations of all of the above).
Represents a failure in a fiber. This could be caused by some non- recoverable error, such as a defect or system error, by some typed error, or by interruption (or combinations of all of the above).
This class is used to wrap ZIO failures into something that can be thrown, to better integrate with Scala exception handling.
Attributes
- Supertypes
The identity of a Fiber, described by the time it began life, and a monotonically increasing sequence number generated from an atomic counter.
The identity of a Fiber, described by the time it began life, and a monotonically increasing sequence number generated from an atomic counter.
Attributes
- Companion
- object
- Supertypes
-
trait Serializableclass Objecttrait Matchableclass Any
- Known subtypes
- Self type
A FiberRef
is ZIO's equivalent of Java's ThreadLocal
. The value of a FiberRef
is automatically propagated to child fibers when they are forked and merged back in to the value of the parent fiber after they are joined.
A FiberRef
is ZIO's equivalent of Java's ThreadLocal
. The value of a FiberRef
is automatically propagated to child fibers when they are forked and merged back in to the value of the parent fiber after they are joined.
for {
fiberRef <- FiberRef.make("Hello world!")
child <- fiberRef.set("Hi!").fork
_ <- child.join
result <- fiberRef.get
} yield result
Here result
will be equal to "Hi!" since changes made by a child fiber are merged back in to the value of the parent fiber on join.
By default the value of the child fiber will replace the value of the parent fiber on join but you can specify your own logic for how values should be merged.
for {
fiberRef <- FiberRef.make(0, identity[Int], math.max)
child <- fiberRef.update(_ + 1).fork
_ <- fiberRef.update(_ + 2)
_ <- child.join
value <- fiberRef.get
} yield value
Here value
will be 2 as the value in the joined fiber is lower and we specified max
as our combining function.
Attributes
- Companion
- object
- Supertypes
-
trait Serializableclass Objecttrait Matchableclass Any
- Known subtypes
-
class Proxy[A]class TrackingFiberRef[A]
- Self type
-
FiberRef[A]
FiberRefs
is a data type that represents a collection of FiberRef
values. This allows safely propagating FiberRef
values across fiber boundaries, for example between an asynchronous producer and consumer.
FiberRefs
is a data type that represents a collection of FiberRef
values. This allows safely propagating FiberRef
values across fiber boundaries, for example between an asynchronous producer and consumer.
Attributes
- Companion
- object
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
A Hub
is an asynchronous message hub. Publishers can offer messages to the hub and subscribers can subscribe to take messages from the hub.
The InterruptStatus of a fiber determines whether or not it can be interrupted. The status can change over time in different regions.
The InterruptStatus of a fiber determines whether or not it can be interrupted. The status can change over time in different regions.
If a fiber is interruptible but in wind-down mode, then it cannot be interrupted no matter what. The InterruptStatus of a fiber reflects only whether it is within an interruptible or uninterruptible region, regardless of wind-down mode.
Attributes
- Companion
- object
- Supertypes
- Known subtypes
-
object Interruptibleobject Uninterruptible
Attributes
- Companion
- class
- Supertypes
- Self type
-
InterruptStatus.type
IsReloadable[Service]
provides evidence that we know enough about the structure of a service to create a reloadable version of it.
IsReloadable[Service]
provides evidence that we know enough about the structure of a service to create a reloadable version of it.
The reloadable
function creates a reloadable instance of the service that forwards every ZIO method call to the underlying service, wrapped in a zio.ScopedRef. The reloadable servservice allows the service to change its behavior at runtime.
Attributes
- Note
-
In order to successfully generate a reloadable service, the type
Service
must meet the following requirements:Service
should be either a trait or a class with a primary constructor without any term parameters.Service
should contain only ZIO methods or vals.Service
should not have any abstract type members.
- Example
-
trait MyService { def foo: UIO[String] } val service1: MyService = new MyService { def foo = ZIO.succeed("zio1") } val service2: MyService = new MyService { def foo = ZIO.succeed("zio2") } for { ref <- ScopedRef.make(service1) reloadable = IsReloadable[MyService].reloadable(ref) res1 <- reloadable.foo _ <- ref.set(ZIO.succeed(service2)) res2 <- reloadable.foo } yield assertTrue(res1 == "zio1" && res2 == "zio2")
- Companion
- object
- Supertypes
-
class Objecttrait Matchableclass Any
Attributes
- Companion
- trait
- Supertypes
- Self type
-
IsReloadable.type
Attributes
- Supertypes
-
class Objecttrait Matchableclass Any
- Known subtypes
-
object IsReloadable
Attributes
- Companion
- object
- Supertypes
-
trait Serializabletrait A => Bclass Objecttrait Matchableclass Any
Attributes
- Companion
- class
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
IsSubtypeOfError.type
Attributes
- Companion
- object
- Supertypes
-
trait Serializabletrait A => Bclass Objecttrait Matchableclass Any
Attributes
- Companion
- class
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
IsSubtypeOfOutput.type
A LogAnnotation
represents a key value pair that allows annotating logs with additional information.
LogLevel represents the log level associated with an individual logging operation. Log levels are used both to describe the granularity (or importance) of individual log statements, as well as to enable tuning verbosity of log output.
LogLevel represents the log level associated with an individual logging operation. Log levels are used both to describe the granularity (or importance) of individual log statements, as well as to enable tuning verbosity of log output.
Value parameters
- label
-
A label associated with the log level.
- ordinal
-
The priority of the log message. Larger values indicate higher priority.
- syslog
-
The syslog severity level of the log level. LogLevel values are ZIO aspects, and therefore can be used with aspect syntax.
myEffect @@ LogLevel.Info
Attributes
- Companion
- object
- Supertypes
- Self type
A NonEmptyChunk
is a Chunk
that is guaranteed to contain at least one element. As a result, operations which would not be safe when performed on Chunk
, such as head
or reduce
, are safe when performed on NonEmptyChunk
. Operations on NonEmptyChunk
which could potentially return an empty chunk will return a Chunk
instead.
A NonEmptyChunk
is a Chunk
that is guaranteed to contain at least one element. As a result, operations which would not be safe when performed on Chunk
, such as head
or reduce
, are safe when performed on NonEmptyChunk
. Operations on NonEmptyChunk
which could potentially return an empty chunk will return a Chunk
instead.
Attributes
- Companion
- object
- Supertypes
-
trait Serializableclass Objecttrait Matchableclass Any
- Self type
Attributes
- Companion
- class
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
NonEmptyChunk.type
A promise represents an asynchronous variable, of zio.ZIO type, that can be set exactly once, with the ability for an arbitrary number of fibers to suspend (by calling await
) and automatically resume when the variable is set.
A promise represents an asynchronous variable, of zio.ZIO type, that can be set exactly once, with the ability for an arbitrary number of fibers to suspend (by calling await
) and automatically resume when the variable is set.
Promises can be used for building primitive actions whose completions require the coordinated action of multiple fibers, and for building higher-level concurrent or asynchronous structures.
for {
promise <- Promise.make[Nothing, Int]
_ <- promise.succeed(42).delay(1.second).fork
value <- promise.await // Resumes when forked fiber completes promise
} yield value
Attributes
- Companion
- object
- Supertypes
-
trait Serializableclass Objecttrait Matchableclass Any
Attributes
- Supertypes
-
class AnyValtrait Matchableclass Any
A Queue
is a lightweight, asynchronous queue into which values can be enqueued and of which elements can be dequeued.
Attributes
- Companion
- object
- Supertypes
-
trait Serializableclass Objecttrait Matchableclass Any
- Known subtypes
-
object RandomLiveclass RandomScala
- Self type
A Ref
is a purely functional description of a mutable reference. The fundamental operations of a Ref
are set
and get
. set
sets the reference to a new value. get
gets the current value of the reference.
A Ref
is a purely functional description of a mutable reference. The fundamental operations of a Ref
are set
and get
. set
sets the reference to a new value. get
gets the current value of the reference.
By default, Ref
is implemented in terms of compare and swap operations for maximum performance and does not support performing effects within update operations. If you need to perform effects within update operations you can create a Ref.Synchronized
, a specialized type of Ref
that supports performing effects within update operations at some cost to performance. In this case writes will semantically block other writers, while multiple readers can read simultaneously.
NOTE: While Ref
provides the functional equivalent of a mutable reference, the value inside the Ref
should normally be immutable since compare and swap operations are not safe for mutable values that do not support concurrent access. If you do need to use a mutable value Ref.Synchronized
will guarantee that access to the value is properly synchronized.
Attributes
- Companion
- object
- Supertypes
-
trait Serializableclass Objecttrait Matchableclass Any
- Known subtypes
-
class Synchronized[A]
A Reloadable is an implementation of some service that can be dynamically reloaded, or swapped out for another implementation on-the-fly.
A Reloadable is an implementation of some service that can be dynamically reloaded, or swapped out for another implementation on-the-fly.
Attributes
- Companion
- object
- Supertypes
Attributes
- Companion
- class
- Supertypes
- Self type
-
Reloadable.type
A RuntimeFlag is a flag that can be set to enable or disable a particular feature of the ZIO runtime.
A RuntimeFlag is a flag that can be set to enable or disable a particular feature of the ZIO runtime.
Attributes
- Companion
- object
- Supertypes
-
class Objecttrait Matchableclass Any
- Known subtypes
-
object CooperativeYieldingobject CurrentFiberobject EagerShiftBackobject FiberRootsobject Interruptionobject OpLogobject OpSupervisionobject RuntimeMetricsobject WindDownobject WorkStealingShow all
Attributes
- Companion
- trait
- Supertypes
- Self type
-
RuntimeFlag.type
Maintains a set of runtime flags. Runtime flags affect the operation of the ZIO runtime system. They are exposed to application-level code because they affect the behavior and performance of application code.
Maintains a set of runtime flags. Runtime flags affect the operation of the ZIO runtime system. They are exposed to application-level code because they affect the behavior and performance of application code.
For more information on individual flags, see zio.RuntimeFlag.
Attributes
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
RuntimeFlags.type
A Schedule[Env, In, Out]
defines a recurring schedule, which consumes values of type In
, and which returns values of type Out
.
A Schedule[Env, In, Out]
defines a recurring schedule, which consumes values of type In
, and which returns values of type Out
.
Schedules are defined as a possibly infinite set of intervals spread out over time. Each interval defines a window in which recurrence is possible.
When schedules are used to repeat or retry effects, the starting boundary of each interval produced by a schedule is used as the moment when the effect will be executed again.
Schedules compose in the following primary ways:
- Union. This performs the union of the intervals of two schedules. * Intersection. This performs the intersection of the intervals of two schedules. * Sequence. This concatenates the intervals of one schedule onto another.
In addition, schedule inputs and outputs can be transformed, filtered (to terminate a schedule early in response to some input or output), and so forth.
A variety of other operators exist for transforming and combining schedules, and the companion object for Schedule
contains all common types of schedules, both for performing retrying, as well as performing repetition.
Attributes
- Companion
- object
- Supertypes
-
trait Serializableclass Objecttrait Matchableclass Any
- Self type
-
Attributes
- Companion
- object
- Supertypes
-
class Objecttrait Matchableclass Any
A Scope
is the foundation of safe, composable resource management in ZIO. A scope has two fundamental operators, addFinalizer
, which adds a finalizer to the scope, and close
, which closes a scope and runs all finalizers that have been added to the scope.
A Scope
is the foundation of safe, composable resource management in ZIO. A scope has two fundamental operators, addFinalizer
, which adds a finalizer to the scope, and close
, which closes a scope and runs all finalizers that have been added to the scope.
Attributes
A ScopedRef is a reference whose value is associated with resources, which must be released properly. You can both get the current value of any ScopedRef, as well as set it to a new value (which may require new resources). The reference itself takes care of properly releasing resources for the old value whenever a new value is obtained.
A ScopedRef is a reference whose value is associated with resources, which must be released properly. You can both get the current value of any ScopedRef, as well as set it to a new value (which may require new resources). The reference itself takes care of properly releasing resources for the old value whenever a new value is obtained.
Attributes
- Companion
- object
- Supertypes
-
class Objecttrait Matchableclass Any
An asynchronous semaphore, which is a generalization of a mutex. Semaphores have a certain number of permits, which can be held and released concurrently by different parties. Attempts to acquire more permits than available result in the acquiring fiber being suspended until the specified number of permits become available.
An asynchronous semaphore, which is a generalization of a mutex. Semaphores have a certain number of permits, which can be held and released concurrently by different parties. Attempts to acquire more permits than available result in the acquiring fiber being suspended until the specified number of permits become available.
If you need functionality that Semaphore
doesnt' provide, use a TSemaphore and define it in a zio.stm.ZSTM transaction.
Attributes
- Companion
- object
- Supertypes
-
trait Serializableclass Objecttrait Matchableclass Any
Attributes
- Companion
- object
- Supertypes
- Self type
Attributes
- Companion
- class
- Supertypes
- Self type
-
StackTrace.type
A Supervisor[A]
is allowed to supervise the launching and termination of fibers, producing some visible value of type A
from the supervision.
A Supervisor[A]
is allowed to supervise the launching and termination of fibers, producing some visible value of type A
from the supervision.
Attributes
- Companion
- object
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
Supervisor[A]
Attributes
- Companion
- class
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
Supervisor.type
Attributes
- Companion
- object
- Supertypes
-
trait Serializableclass Objecttrait Matchableclass Any
- Known subtypes
-
object SystemLive
- Self type
Attributes
Attributes
- Supertypes
-
class Objecttrait Matchableclass Any
- Known subtypes
-
object Tag
Attributes
- Companion
- object
- Supertypes
-
class Objecttrait Matchableclass Any
Attributes
- Companion
- trait
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
ThreadLocalBridge.type
A marker interface used to indicate that a method is side-effecting, partial, or potentially type unsafe, such that it might throw a ClassCastException if used improperly. This marker interface is useful for certain low-level ZIO methods, to differentiate them from the higher-level methods, which are always pure, total, and type-safe.
A marker interface used to indicate that a method is side-effecting, partial, or potentially type unsafe, such that it might throw a ClassCastException if used improperly. This marker interface is useful for certain low-level ZIO methods, to differentiate them from the higher-level methods, which are always pure, total, and type-safe.
import Unsafe.unsafe
unsafe { ... }
Attributes
- Companion
- object
- Supertypes
-
trait Serializableclass Objecttrait Matchableclass Any
Attributes
- Companion
- object
- Supertypes
-
class Objecttrait Matchableclass Any
Attributes
- Companion
- trait
- Supertypes
-
trait UnzippableLowPriority1trait UnzippableLowPriority2trait UnzippableLowPriority3class Objecttrait Matchableclass AnyShow all
- Self type
-
Unzippable.type
Attributes
- Supertypes
- Known subtypes
-
object Unzippable
Attributes
- Supertypes
- Known subtypes
-
trait UnzippableLowPriority1object Unzippable
Attributes
- Supertypes
-
class Objecttrait Matchableclass Any
- Known subtypes
Attributes
- Supertypes
-
class AnyValtrait Matchableclass Any
Attributes
- Supertypes
-
class AnyValtrait Matchableclass Any
Attributes
- Companion
- object
- Supertypes
-
trait Serializableclass Objecttrait Matchableclass Any
- Self type
-
ZEnvironment[R]
Attributes
- Companion
- class
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
ZEnvironment.type
A ZIO[R, E, A]
value is an immutable value (called an "effect") that describes an async, concurrent workflow. In order to be executed, the workflow requires a value of type ZEnvironment[R]
, and when executed, the workflow will either produce a failure of type E
, or a success of type A
.
A ZIO[R, E, A]
value is an immutable value (called an "effect") that describes an async, concurrent workflow. In order to be executed, the workflow requires a value of type ZEnvironment[R]
, and when executed, the workflow will either produce a failure of type E
, or a success of type A
.
ZIO effects may informally be thought of as functions of the following form:
ZEnvironment[R] => Either[E, A]
ZIO effects model resourceful interaction with the outside world, including synchronous, asynchronous, concurrent, and parallel interaction.
The async and concurrent operations of ZIO effects are powered by fibers, which are lightweight, green threads that enable high scalability.
To run an effect, you need a Runtime
, which is capable of executing effects. Runtimes bundle a thread pool together with the environment that effects need.
Attributes
- Companion
- object
- Supertypes
- Known subtypes
- Self type
-
Attributes
An entry point for a ZIO application that allows sharing layers between applications. For a simpler version that uses the default ZIO environment see ZIOAppDefault
.
An entry point for a ZIO application that allows sharing layers between applications. For a simpler version that uses the default ZIO environment see ZIOAppDefault
.
Attributes
- Companion
- object
- Supertypes
- Known subtypes
-
class Proxytrait ZIOAppDefault
- Self type
Attributes
- Companion
- class
- Supertypes
- Self type
-
ZIOAppArgs.type
The entry point for a ZIO application.
The entry point for a ZIO application.
import zio.ZIOAppDefault
import zio.Console._
object MyApp extends ZIOAppDefault {
def run =
for {
_ <- printLine("Hello! What is your name?")
n <- readLine
_ <- printLine("Hello, " + n + ", good to meet you!")
} yield ()
}
Attributes
- Companion
- object
- Supertypes
Attributes
- Companion
- trait
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
ZIOAppDefault.type
Attributes
- Supertypes
-
class Objecttrait Matchableclass Any
- Known subtypes
Attributes
- Companion
- class
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
Attributes
- Companion
- object
- Supertypes
-
class Objecttrait Matchableclass Any
Attributes
- Supertypes
-
class Objecttrait Matchableclass Any
- Known subtypes
-
object ZIO
Attributes
- Companion
- object
- Supertypes
-
class Objecttrait Matchableclass Any
Attributes
- Companion
- trait
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
ZInputStream.type
Attributes
- Companion
- object
- Supertypes
-
class Objecttrait Matchableclass Any
Attributes
- Companion
- trait
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
ZKeyedPool.type
A ZLayer[E, A, B]
describes how to build one or more services in your application. Services can be injected into effects via ZIO#provide. Effects can require services via ZIO.service."
A ZLayer[E, A, B]
describes how to build one or more services in your application. Services can be injected into effects via ZIO#provide. Effects can require services via ZIO.service."
Layer can be thought of as recipes for producing bundles of services, given their dependencies (other services).
Construction of services can be effectful and utilize resources that must be acquired and safely released when the services are done being utilized.
By default layers are shared, meaning that if the same layer is used twice the layer will only be allocated a single time.
Because of their excellent composition properties, layers are the idiomatic way in ZIO to create services that depend on other services.
Attributes
- Companion
- object
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
Attributes
Attributes
- Companion
- object
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
Attributes
- Companion
- trait
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
ZLayerAspect.type
Attributes
- Supertypes
-
class Objecttrait Matchableclass Any
- Known subtypes
-
object ZLayer
Attributes
- Companion
- object
- Supertypes
-
class Objecttrait Matchableclass Any
Attributes
- Companion
- trait
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
ZOutputStream.type
A ZPool[E, A]
is a pool of items of type A
, each of which may be associated with the acquisition and release of resources. An attempt to get an item A
from a pool may fail with an error of type E
.
A ZPool[E, A]
is a pool of items of type A
, each of which may be associated with the acquisition and release of resources. An attempt to get an item A
from a pool may fail with an error of type E
.
Attributes
- Companion
- object
- Supertypes
-
class Objecttrait Matchableclass Any
ZState[S]
models a value of type S
that can be read from and written to during the execution of an effect. The idiomatic way to work with ZState
is as part of the environment using operators defined on ZIO
. For example:
ZState[S]
models a value of type S
that can be read from and written to during the execution of an effect. The idiomatic way to work with ZState
is as part of the environment using operators defined on ZIO
. For example:
final case class MyState(counter: Int)
for {
_ <- ZIO.updateState[MyState](state => state.copy(counter = state.counter + 1))
count <- ZIO.getStateWith[MyState](_.counter)
} yield count
Because ZState
is typically used as part of the environment, it is recommended to define your own state type S
such as MyState
above rather than using a type such as Int
to avoid the risk of ambiguity.
To run a stateful workflow, use the ZIO.stateful
operator to allocate the initial state.
Attributes
- Companion
- object
- Supertypes
-
class Objecttrait Matchableclass Any
Attributes
- Companion
- object
- Supertypes
-
class Objecttrait Matchableclass Any
Attributes
- Companion
- trait
- Supertypes
-
trait ZippableLowPriority1trait ZippableLowPriority2trait ZippableLowPriority3class Objecttrait Matchableclass AnyShow all
- Self type
-
Zippable.type
Attributes
Attributes
- Companion
- trait
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
ZippableLowPriority1.type
Attributes
- Supertypes
- Known subtypes
-
trait ZippableLowPriority1object Zippable
Attributes
- Supertypes
-
class Objecttrait Matchableclass Any
- Known subtypes
Experimental classlikes
Attributes
- Experimental
- true
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
Experimental.type
Types
Inherited types
Attributes
- Inherited from:
- BuildFromCompat (hidden)
Attributes
- Inherited from:
- DurationModule
Attributes
- Inherited from:
- VersionSpecific (hidden)
Attributes
- Inherited from:
- VersionSpecific (hidden)
Attributes
- Inherited from:
- VersionSpecific (hidden)
Attributes
- Inherited from:
- VersionSpecific (hidden)
Attributes
- Inherited from:
- VersionSpecific (hidden)
Attributes
- Inherited from:
- VersionSpecific (hidden)
Attributes
- Inherited from:
- VersionSpecific (hidden)
Attributes
- Inherited from:
- VersionSpecific (hidden)
Attributes
- Inherited from:
- VersionSpecific (hidden)
Attributes
- Inherited from:
- VersionSpecific (hidden)
Attributes
- Inherited from:
- VersionSpecific (hidden)
Attributes
- Inherited from:
- VersionSpecific (hidden)
Attributes
- Inherited from:
- VersionSpecific (hidden)
Attributes
- Inherited from:
- VersionSpecific (hidden)
Attributes
- Inherited from:
- VersionSpecific (hidden)
Attributes
- Inherited from:
- VersionSpecific (hidden)
Value members
Inherited fields
Attributes
- Inherited from:
- VersionSpecific (hidden)
Implicits
Inherited implicits
Attributes
- Inherited from:
- BuildFromCompat (hidden)
Attributes
- Inherited from:
- DurationModule
Attributes
- Inherited from:
- DurationModule
Attributes
- Inherited from:
- DurationModule
Attributes
- Inherited from:
- DurationModule