package iteratee
- Alphabetic
- By Inheritance
- iteratee
- IterateeInstances
- LowPriorityInstances
- FutureModule
- NonSuspendableFileModule
- FileModule
- IterateeErrorModule
- IterateeModule
- EnumeratorErrorModule
- EnumeratorModule
- EnumerateeModule
- Module
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
-
trait
Enumerate[A] extends AnyRef
Enumerate HTTP streamed payload represented as Enumerator (encoded with Charset) into an Enumerator of arbitrary type
A
. - trait EnumerateInstances extends AnyRef
- case class IsPrime(isPrime: Boolean) extends Product with Serializable
-
sealed
class
LiftToIterateePartiallyApplied[E] extends AnyRef
- Definition Classes
- IterateeModule
-
abstract
type
M[f[_]] <: Monad[f[_]]
- Definition Classes
- Module
- case class Number(i: Int) extends Product with Serializable
-
sealed
class
PerformPartiallyApplied[E] extends AnyRef
- Definition Classes
- EnumeratorModule
- case class Result(result: Int) extends Product with Serializable
Abstract Value Members
-
abstract
def
F: iteratee.M[Future]
- Attributes
- protected
- Definition Classes
- Module
-
abstract
def
listFiles(dir: File): Enumerator[Future, File]
- Definition Classes
- FileModule
-
abstract
def
listFilesRec(dir: File): Enumerator[Future, File]
- Definition Classes
- FileModule
-
abstract
def
readBytes(file: File): Enumerator[Future, Array[Byte]]
- Definition Classes
- FileModule
-
abstract
def
readBytesFromStream(stream: InputStream): Enumerator[Future, Array[Byte]]
- Definition Classes
- FileModule
-
abstract
def
readLines(file: File): Enumerator[Future, String]
- Definition Classes
- FileModule
-
abstract
def
readLinesFromStream(stream: InputStream): Enumerator[Future, String]
- Definition Classes
- FileModule
-
abstract
def
readZipStreams(file: File): Enumerator[Future, (ZipEntry, InputStream)]
- Definition Classes
- FileModule
-
abstract
def
writeBytes(file: File): Iteratee[Future, Array[Byte], Unit]
- Definition Classes
- FileModule
-
abstract
def
writeBytesToStream(stream: OutputStream): Iteratee[Future, Array[Byte], Unit]
- Definition Classes
- FileModule
-
abstract
def
writeLines(file: File): Iteratee[Future, String, Unit]
- Definition Classes
- FileModule
-
abstract
def
writeLinesToStream(stream: OutputStream): Iteratee[Future, String, Unit]
- Definition Classes
- FileModule
Concrete Value Members
-
final
def
bracket[R <: Closeable, A](fr: Future[R])(f: (R) ⇒ Future[A])(implicit F: MonadError[Future, Throwable]): Future[A]
- Attributes
- protected
- Definition Classes
- FileModule
-
final
def
collect[O, I](pf: PartialFunction[O, I]): Enumeratee[Future, O, I]
- Definition Classes
- EnumerateeModule
-
final
def
consume[E]: Iteratee[Future, E, Vector[E]]
- Definition Classes
- IterateeModule
-
final
def
consumeIn[E, C[_]](implicit C: Applicative[C], M: MonoidK[C]): Iteratee[Future, E, C[E]]
- Definition Classes
- IterateeModule
-
final
def
cont[E, A](ifInput: (NonEmptyList[E]) ⇒ Iteratee[Future, E, A], ifEnd: Future[A]): Iteratee[Future, E, A]
- Definition Classes
- IterateeModule
-
final
def
cross[E1, E2](e2: Enumerator[Future, E2]): Enumeratee[Future, E1, (E1, E2)]
- Definition Classes
- EnumerateeModule
-
final
def
done[E, A](value: A): Iteratee[Future, E, A]
- Definition Classes
- IterateeModule
-
final
def
drop[E](n: Long): Enumeratee[Future, E, E]
- Definition Classes
- EnumerateeModule
-
final
def
dropI[E](n: Int): Iteratee[Future, E, Unit]
- Definition Classes
- IterateeModule
-
final
def
dropWhile[E](p: (E) ⇒ Boolean): Enumeratee[Future, E, E]
- Definition Classes
- EnumerateeModule
-
final
def
dropWhileI[E](p: (E) ⇒ Boolean): Iteratee[Future, E, Unit]
- Definition Classes
- IterateeModule
-
final
def
dropWhileM[E](p: (E) ⇒ Future[Boolean]): Enumeratee[Future, E, E]
- Definition Classes
- EnumerateeModule
-
final
def
empty[E]: Enumerator[Future, E]
- Definition Classes
- EnumeratorModule
-
final
def
enumEither[E](either: Either[Throwable, E]): Enumerator[Future, E]
- Definition Classes
- EnumeratorErrorModule
-
final
def
enumIndexedSeq[E](es: IndexedSeq[E], min: Int, max: Int): Enumerator[Future, E]
- Definition Classes
- EnumeratorModule
-
final
def
enumIterable[E](es: Iterable[E], chunkSize: Int): Enumerator[Future, E]
- Definition Classes
- EnumeratorModule
-
final
def
enumList[E](es: List[E]): Enumerator[Future, E]
- Definition Classes
- EnumeratorModule
-
final
def
enumOne[E](e: E): Enumerator[Future, E]
- Definition Classes
- EnumeratorModule
-
final
def
enumStream[E](es: Stream[E], chunkSize: Int): Enumerator[Future, E]
- Definition Classes
- EnumeratorModule
-
final
def
enumVector[E](es: Vector[E]): Enumerator[Future, E]
- Definition Classes
- EnumeratorModule
-
final
def
enumerate[E](xs: E*): Enumerator[Future, E]
- Definition Classes
- EnumeratorModule
-
def
enumeratorBody[A, CT <: String](implicit decode: Aux[A, CT]): Endpoint[Enumerator[Future, A]]
An evaluating Endpoint that reads a required chunked streaming binary body, interpreted as an
Enumerator[Future, A]
. -
def
enumeratorJsonBody[A](implicit ad: Aux[A, Json]): Endpoint[Enumerator[Future, A]]
An evaluating Endpoint that reads a required chunked streaming JSON body, interpreted as an
Enumerator[Future, A]
. -
implicit
def
enumeratorToJsonResponse[A](implicit e: Encode.Aux[A, Json], w: Aux[Json]): ToResponse.Aux[Enumerator[Future, A], Json]
- Definition Classes
- IterateeInstances
-
implicit
def
enumeratorToResponse[A, CT <: String](implicit e: Encode.Aux[A, CT], w: Aux[CT]): ToResponse.Aux[Enumerator[Future, A], CT]
- Definition Classes
- LowPriorityInstances
-
final
def
failEnumerator[E](t: Throwable): Enumerator[Future, E]
- Definition Classes
- EnumeratorErrorModule
-
final
def
failIteratee[E, A](t: Throwable): Iteratee[Future, E, A]
- Definition Classes
- IterateeErrorModule
-
final
def
filter[E](p: (E) ⇒ Boolean): Enumeratee[Future, E, E]
- Definition Classes
- EnumerateeModule
-
final
def
filterM[E](p: (E) ⇒ Future[Boolean]): Enumeratee[Future, E, E]
- Definition Classes
- EnumerateeModule
-
final
def
flatMap[O, I](f: (O) ⇒ Enumerator[Future, I]): Enumeratee[Future, O, I]
- Definition Classes
- EnumerateeModule
-
final
def
flatMapM[O, I](f: (O) ⇒ Future[I]): Enumeratee[Future, O, I]
- Definition Classes
- EnumerateeModule
-
final
def
fold[E, A](init: A)(f: (A, E) ⇒ A): Iteratee[Future, E, A]
- Definition Classes
- IterateeModule
-
final
def
foldM[E, A](init: A)(f: (A, E) ⇒ Future[A]): Iteratee[Future, E, A]
- Definition Classes
- IterateeModule
-
final
def
foldMap[E, A](f: (E) ⇒ A)(implicit A: Monoid[A]): Iteratee[Future, E, A]
- Definition Classes
- IterateeModule
-
final
def
foldMapM[E, A](f: (E) ⇒ Future[A])(implicit A: Monoid[A]): Iteratee[Future, E, A]
- Definition Classes
- IterateeModule
-
final
def
foldMapMOption[E, A](f: (E) ⇒ Future[A])(implicit A: Semigroup[A]): Iteratee[Future, E, Option[A]]
- Definition Classes
- IterateeModule
-
final
def
foldMapOption[E, A](f: (E) ⇒ A)(implicit A: Semigroup[A]): Iteratee[Future, E, Option[A]]
- Definition Classes
- IterateeModule
-
final
def
foreach[E](f: (E) ⇒ Unit): Iteratee[Future, E, Unit]
- Definition Classes
- IterateeModule
-
final
def
foreachM[A](f: (A) ⇒ Future[Unit]): Iteratee[Future, A, Unit]
- Definition Classes
- IterateeModule
-
final
def
generateM[E](f: Future[Option[E]]): Enumerator[Future, E]
- Definition Classes
- EnumeratorModule
-
final
def
grouped[E](n: Int): Enumeratee[Future, E, Vector[E]]
- Definition Classes
- EnumerateeModule
-
final
def
head[E]: Iteratee[Future, E, Option[E]]
- Definition Classes
- IterateeModule
-
final
def
identityIteratee[E]: Iteratee[Future, E, Unit]
- Definition Classes
- IterateeModule
-
final
def
injectValue[E](e: E): Enumeratee[Future, E, E]
- Definition Classes
- EnumerateeModule
-
final
def
injectValues[E](es: Seq[E]): Enumeratee[Future, E, E]
- Definition Classes
- EnumerateeModule
-
final
def
intersperse[E](delim: E): Enumeratee[Future, E, E]
- Definition Classes
- EnumerateeModule
-
final
def
isEnd[E]: Iteratee[Future, E, Boolean]
- Definition Classes
- IterateeModule
-
final
def
iterate[E](init: E)(f: (E) ⇒ E): Enumerator[Future, E]
- Definition Classes
- EnumeratorModule
-
final
def
iterateM[E](init: E)(f: (E) ⇒ Future[E]): Enumerator[Future, E]
- Definition Classes
- EnumeratorModule
-
final
def
iterateUntil[E](init: E)(f: (E) ⇒ Option[E]): Enumerator[Future, E]
- Definition Classes
- EnumeratorModule
-
final
def
iterateUntilM[E](init: E)(f: (E) ⇒ Future[Option[E]]): Enumerator[Future, E]
- Definition Classes
- EnumeratorModule
-
final
def
last[E]: Iteratee[Future, E, Option[E]]
- Definition Classes
- IterateeModule
-
final
def
length[E]: Iteratee[Future, E, Long]
- Definition Classes
- IterateeModule
-
final
def
liftToEnumerator[E](fe: Future[E]): Enumerator[Future, E]
- Definition Classes
- EnumeratorModule
-
final
def
liftToIteratee[E]: LiftToIterateePartiallyApplied[E]
- Definition Classes
- IterateeModule
-
final
def
map[O, I](f: (O) ⇒ I): Enumeratee[Future, O, I]
- Definition Classes
- EnumerateeModule
-
final
def
peek[E]: Iteratee[Future, E, Option[E]]
- Definition Classes
- IterateeModule
-
final
def
perform[E]: PerformPartiallyApplied[E]
- Definition Classes
- EnumeratorModule
-
final
def
remainderWithResult[O, R, I](iteratee: Iteratee[Future, O, R])(f: (R, O) ⇒ I): Enumeratee[Future, O, I]
- Definition Classes
- EnumerateeModule
-
final
def
remainderWithResultM[O, R, I](iteratee: Iteratee[Future, O, R])(f: (R, O) ⇒ Future[I]): Enumeratee[Future, O, I]
- Definition Classes
- EnumerateeModule
-
final
def
repeat[E](e: E): Enumerator[Future, E]
- Definition Classes
- EnumeratorModule
-
final
def
reversed[E]: Iteratee[Future, E, List[E]]
- Definition Classes
- IterateeModule
-
final
def
scan[O, I](init: I)(f: (I, O) ⇒ I): Enumeratee[Future, O, I]
- Definition Classes
- EnumerateeModule
-
final
def
scanM[O, I](init: I)(f: (I, O) ⇒ Future[I]): Enumeratee[Future, O, I]
- Definition Classes
- EnumerateeModule
-
final
def
sequenceI[O, I](iteratee: Iteratee[Future, O, I]): Enumeratee[Future, O, I]
- Definition Classes
- EnumerateeModule
-
final
def
splitOn[E](p: (E) ⇒ Boolean): Enumeratee[Future, E, Vector[E]]
- Definition Classes
- EnumerateeModule
-
final
def
sum[E](implicit E: Monoid[E]): Iteratee[Future, E, E]
- Definition Classes
- IterateeModule
-
final
def
take[E](n: Long): Enumeratee[Future, E, E]
- Definition Classes
- EnumerateeModule
-
final
def
takeI[E](n: Int): Iteratee[Future, E, Vector[E]]
- Definition Classes
- IterateeModule
-
final
def
takeWhile[E](p: (E) ⇒ Boolean): Enumeratee[Future, E, E]
- Definition Classes
- EnumerateeModule
-
final
def
takeWhileI[E](p: (E) ⇒ Boolean): Iteratee[Future, E, Vector[E]]
- Definition Classes
- IterateeModule
-
final
def
takeWhileM[E](p: (E) ⇒ Future[Boolean]): Enumeratee[Future, E, E]
- Definition Classes
- EnumerateeModule
-
final
def
uniq[E](implicit E: Eq[E]): Enumeratee[Future, E, E]
- Definition Classes
- EnumerateeModule
-
def
withCustomIteratee[A, CT <: String](iteratee: (Writer) ⇒ Iteratee[Future, Buf, Unit])(implicit e: Encode.Aux[A, CT], w: Aux[CT]): ToResponse.Aux[Enumerator[Future, A], CT]
- Attributes
- protected
- Definition Classes
- LowPriorityInstances
-
final
def
zipWithIndex[E]: Enumeratee[Future, E, (E, Long)]
- Definition Classes
- EnumerateeModule
- object Enumerate extends EnumerateInstances
-
object
Main
A Finch application featuring iteratee-based streaming support.
A Finch application featuring iteratee-based streaming support. This approach is more advanced and performant then basic com.twitter.concurrent.AsyncStream
There are three endpoints in this example:
sumJson
- streaming request 2.streamJson
- streaming response 3.isPrime
- end-to-end (request - response) streaming
Use the following sbt command to run the application.
$ sbt 'examples/runMain io.finch.iteratee.Main'
Use the following HTTPie/curl commands to test endpoints.
$ curl -X POST --header "Transfer-Encoding: chunked" -d '{"i": 40} {"i": 2}' localhost:8081/sumJson $ http --stream GET :8081/streamJson $ curl -X POST --header "Transfer-Encoding: chunked" -d '{"i": 40} {"i": 42}' localhost:8081/streamPrime
-
object
syntax
- Definition Classes
- Module
This is the API documentation for finch
Finch is a thin layer of purely functional basic blocks atop of [Finagle][finagle] for building composable HTTP APIs. Its mission is to provide the developers simple and robust HTTP primitives being as close as possible to the bare metal Finagle API.
Finch uses multi-project structure and contains of the following _modules_:
Please refer to the documentation for a more detailed introduction to the library.