Skip to content

A high-performance, purely-functional, type-safe queue built on ZIO with composable and transparent back-pressure

License

Notifications You must be signed in to change notification settings

xdanny/scalaz-ioqueue

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

scalaz-ioqueue

Gitter

Goal

IOQueue provides a high-performance, in-memory, user-friendly queue implementation with composable back-pressure and purely-functional semantics built on ZIO.

Introduction & Highlights

IOQueue provides a high-performance, purely-functional, type-safe queue built on ZIO with composable, transparent back-pressure. A queue allows to adding (enqueue) and removing (dequeue) elements in First In First Out (FIFO) manner.

IOQueue is an asynchronous queue, which works without locks or blocking, and exposes its functionality in two simple methods: offer, to add an item to the queue; and take, to remove an item from the queue.

  • Purely-functional interface that cleanly integrates with ZIO and Scalaz.
  • Fully asynchronous implementation, without locks or blocking.
  • Multithreaded and optimized for concurrent usage from many fibers.
  • Composable back-pressure to ensure producers cannot flood consumers.

Competition

FS2 Monix Queue Java Blocking Queue
Purely-functional 𐄂 𐄂
Composable Backpressure 𐄂 𐄂
Asynchronous 𐄂
High-performance 𐄂
Scalaz Integration 𐄂 𐄂 𐄂

Background

Adam Warsky blogs Part 1 | Part 2 | Part 3

About

A high-performance, purely-functional, type-safe queue built on ZIO with composable and transparent back-pressure

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Scala 100.0%