Skip to content

aparo/awesome-zio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Awesome ZIO Awesome

A community driven list of useful ZIO libraries, frameworks and software. Inspired by awesome-python. Other amazingly awesome lists can be found in the awesome-awesomeness list.

Projects with over 500 stargazers are in bold.

Based partial on ZIO documentation.

Table of Contents

Projects

Actors

  • ZIO Actors: A high-performance, purely-functional library for building, composing, and supervising typed actors based on ZIO
  • ZIO Akka Cluster: A ZIO wrapper for Akka Cluster

Algorithm

  • cakeless: Better reader monad for deeply-nested cakes
  • zio-saga: Purely functional transaction management with Saga pattern

Config

  • ZIO Config: A ZIO based configuration parsing library

Database

  • zio-slick: Bridge library between ZIO and Slick Functional Relational Mapping Library

Dependency Injection

  • distage: Staged, transparent and debuggable runtime & compile-time Dependency Injection Framework

Email

Frameworks

  • caliban: Functional GraphQL backend in Scala
  • idealingua: API Definition, Data Modeling and RPC Language, optimized for fast prototyping – like gRPC, but with a human face

HTTP

ZIO libraries and wrappers for HTTP clients.

IO

  • ZIO NIO: A performant, purely-functional, low-level, and unopinionated wrapper around Java NIO functionality

Logging

ZIO libraries and wrappers for Logging

  • logstage: Automatic structural logs from Scala string interpolations
  • ZIO Logging: An environmental effect for adding logging into any ZIO application, with choice of pluggable back-ends
  • slf4zio: Simple convenience layer on top of SLF4J for ZIO
  • zio-slf4j: Referentially transparent logging with slf4j
  • zio-interop-log4j2: Fiber aware MDC logging for Log4j 2

Metrics and Monitoring

  • ZIO Metric: A high-performance, purely-functional library for adding instrumentation to any application, with a simple web client and JMX support.
  • ZIO Telemetry: A ZIO-powered OpenTelemetry library

Misc

NoSQL

  • ZIO-JMS: ZIO-JMS adapts JMS API to ZIO streams and makes it working more conveniently and seamlessly integrates ZIO
  • ZIO Kafka: A Kafka client for ZIO and ZIO Streams
  • zio-kafka-registry: Project to use zio-kafka in combination with the Confluent Schema Registry.
  • zio-elasticsearch: ElasticSearch client for Scala based on ZIO and FP by Alberto Paro
  • elastic4s: Elasticsearch Scala Client - Reactive, Non Blocking, Type Safe, HTTP Client
  • neotypes: A Scala lightweight, type-safe & asynchronous driver for neo4j
  • scanamo: Simpler DynamoDB access for Scala
  • ZIO SQS: A ZIO-powered client for AWS SQS
  • ZIO Keeper: A functional library for consistent replication of metadata across dynamic clusters
  • SwayDB: Embeddable persistent & in-memory database
  • zio-amqp: ZIO AMQP is a ZIO-based wrapper around the RabbitMQ client. It provides a streaming interface to AMQP queues and helps to prevent you from shooting yourself in the foot with thread-safety issues.
  • zio-kinesis: ZIO Kinesis is a ZIO-based wrapper around the AWS Kinesis SDK. All operations are non-blocking. It provides a streaming interface to Kinesis streams.
  • zio-rocksdb: A ZIO-based interface to RocksDB.

Sample

Some repositories that contains useful code to look at.

Official ZIO Libraries

These libraries are hosted in the ZIO organization on Github, and are generally maintained by core contributors to ZIO.

  • ZIO Actors: A high-performance, purely-functional library for building, composing, and supervising typed actors based on ZIO
  • ZIO Akka Cluster: A ZIO wrapper for Akka Cluster
  • ZIO Config: A ZIO based configuration parsing library
  • ZIO HTTP: A ZIO-powered HTTP server and client
  • ZIO Kafka: A Kafka client for ZIO and ZIO Streams
  • ZIO Keeper: A functional library for consistent replication of metadata across dynamic clusters
  • ZIO Logging: An environmental effect for adding logging into any ZIO application, with choice of pluggable back-ends
  • ZIO NIO: A performant, purely-functional, low-level, and unopinionated wrapper around Java NIO functionality
  • ZIO SQS: A ZIO-powered client for AWS SQS
  • ZIO Telemetry: A ZIO-powered OpenTelemetry library

Blog Articles

These articles reflect the state of ZIO at the time of their publication. The code samples might be outdated, considering ZIO was early in development at the time they were written. However, the concepts are still relevant.

Talks

News

CheatSheet

Support

Contributing

  • Make sure you are about to post a valuable resource that belongs to this list
  • Do NOT group ++Add and --Remove changes in same PR. Make them separate pull requests
  • Use spellchecker
  • All spelling and grammar corrections are welcome (except for the rule above)
  • Fork this repo, do your edits, send the pull request
  • Feel free to create any new sections
  • Do not even try to add this repo to any awesome-awesome-* lists

About

A big collection of useful ZIO links

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages