trait TaskApp extends AnyRef
Safe App type that executes a Task. Shutdown occurs after
the Task completes, as follows:
- If completed with ExitCode.Success, the main method exits and
shutdown is handled by the platform.
- If completed with any other ExitCode, sys.exit is called
with the specified code.
- If the Task raises an error, the stack trace is printed to
standard error and sys.exit(1) is called.
When a shutdown is requested via a signal, the Task is canceled and
we wait for the IO to release any resources. The process exits
with the numeric value of the signal plus 128.
import cats.effect._ import cats.implicits._ import monix.eval._ object MyApp extends TaskApp { def run(args: List[String]): Task[ExitCode] = args.headOption match { case Some(name) => Task(println(s"Hello, \${name}.")).as(ExitCode.Success) case None => Task(System.err.println("Usage: MyApp name")).as(ExitCode(2)) } }
N.B. this is homologous with cats.effect.IOApp, but meant for usage with Task.
Works on top of JavaScript as well ;-)
- Source
- TaskApp.scala
Linear Supertypes
Ordering
- Alphabetic
- By Inheritance
Inherited
- TaskApp
- AnyRef
- Any
- Hide All
- Show All
Visibility
- Public
- Protected

This is the API documentation for the Monix library.
Package Overview
monix.execution exposes lower level primitives for dealing with asynchronous execution:
Atomictypes, as alternative tojava.util.concurrent.atomicmonix.catnap exposes pure abstractions built on top of the Cats-Effect type classes:
monix.eval is for dealing with evaluation of results, thus exposing Task and Coeval.
monix.reactive exposes the
Observablepattern:Observableimplementationsmonix.tail exposes Iterant for purely functional pull based streaming:
BatchandBatchCursor, the alternatives to Scala'sIterableandIteratorrespectively that we are using within Iterant's encodingYou can control evaluation with type you choose - be it Task, Coeval, cats.effect.IO or your own as long as you provide correct cats-effect or cats typeclass instance.