diff --git a/build.scala b/build.scala index b52cbb09..0e22f632 100644 --- a/build.scala +++ b/build.scala @@ -419,6 +419,7 @@ object LaikaCustomizations { "fa-signal-messenger" -> loadFaIcon("brands", "signal-messenger"), "fa-youtube" -> loadFaIcon("brands", "youtube"), // solids + "fa-arrow-up" -> loadFaIcon("solid", "arrow-up"), "fa-book" -> loadFaIcon("solid", "book"), "fa-envelope" -> loadFaIcon("solid", "envelope"), "fa-globe" -> loadFaIcon("solid", "globe"), diff --git a/src/projects/README.md b/src/projects/README.md index 17216135..422f8644 100644 --- a/src/projects/README.md +++ b/src/projects/README.md @@ -1,3 +1,3 @@ {% - laika.title: Project Index + laika.title: Typelevel Projects %} diff --git a/src/projects/default.template.html b/src/projects/default.template.html index 8da2408d..ccb787eb 100644 --- a/src/projects/default.template.html +++ b/src/projects/default.template.html @@ -1,32 +1,57 @@ @:embed(/templates/main.template.html)
-

Project Index

-
+

Typelevel Projects

+
+

All Typelevel projects are open source software and maintained by communities following the Typelevel code of conduct.

+

Typelevel organization projects have their own maintainers, but receive additional + support from the Typelevel Foundation to ensure the project remains up to date and secure. These projects include + core components of the 'Typelevel Stack', built around the core organization projects and broadly useful + libraries.

+

Affiliate projects are built on top of the core Typelevel libraries and follow Typelevel + community guidelines. While not directly supported by the Foundation, these projects are designed to be compatible + with the overall Typelevel ecosystem.

+
+

Organization Projects

+ + + @:for(projects) + @:for(_.anchor) +

${_.title}

+ @:empty +

${_.title}

+ @:@ + @:for(_.description) +

${_.description}

+ @:@ +
+ @:for(_.projects)
-
+

${_.title}

- - @:svg(fa-github) - @:for(_.permalink) - @:svg(fa-book) + @:svg(fa-book) @:@ + + @:svg(fa-github) +
-
-

${_.description}

+
+

${_.description}

- @:if(_.affiliate) - Affiliate Project - @:else - Organization Project - @:@ @:for(_.platforms) ${_} @:@ @@ -36,6 +61,10 @@

Project Index

@:@
+ + @:svg(fa-arrow-up)Top + + @:@
@:@ diff --git a/src/projects/directory.conf b/src/projects/directory.conf index 2211a80c..94dce251 100644 --- a/src/projects/directory.conf +++ b/src/projects/directory.conf @@ -1,573 +1,610 @@ projects = [ { - title: "argonaut-shapeless" - description: "Automatic derivation for argonaut" - github: "https://github.com/alexarchambault/argonaut-shapeless" - affiliate: true - platforms: [jvm] - }, - { - title: "banana-rdf" - description: "RDF, SPARQL and Linked Data technologies" - github: "https://github.com/banana-rdf/banana-rdf" - affiliate: true - platforms: [js, jvm] - }, - { - title: "calico" - description: "Pure, reactive UI library for building web applications with Cats Effect + FS2" - github: "https://github.com/armanbilge/calico" - permalink: "https://armanbilge.github.io/calico" - affiliate: true - platforms: [js] - }, - { - title: "cats-actors" - description: "An Actor Model implementation built on top of Cats-Effect, providing a higher-level abstraction for managing concurrency." - github: "https://github.com/suprnation/cats-actors" - affiliate: true - platforms: [js, jvm, native] - }, - { - title: "case-insensitive" - description: "A case-insensitive string for Scala" - github: "https://github.com/typelevel/case-insensitive" - platforms: [js, jvm, native] - }, - { - title: "catapult" - description: "A thin wrapper for the Launch Darkly Java server SDK using cats-effect and fs2" - github: "https://github.com/typelevel/catapult" - platforms: [jvm] - }, - { - title: "catbird" - description: "Cats instances for various Twitter Open Source Scala projects" - github: "https://github.com/typelevel/catbird" - platforms: [jvm] - }, - { - title: "Cats" - description: "A library intended to provide abstractions for functional programming in Scala, leveraging its unique features. Design goals are approachability, modularity, documentation and efficiency." - permalink: "https://typelevel.org/cats/" - github: "https://github.com/typelevel/cats" - platforms: [js, jvm, native] - }, - { - title: "Cats Collections" - description: "Data structures that facilitate pure functional programming with cats" - github: "https://github.com/typelevel/cats-collections" - platforms: [js, jvm, native] - }, - { - title: "Cats-Effect" - description: "The IO Monad for Scala, plus type classes for general effect types." - github: "https://github.com/typelevel/cats-effect/" - platforms: [js, jvm, native] - }, - { - title: "Cats MTL" - description: "Monad transformers made easy" - github: "https://github.com/typelevel/cats-mtl/" - platforms: [js, jvm, native] - }, - { - title: "cats-parse" - description: "A parsing library for the cats ecosystem" - github: "https://github.com/typelevel/cats-parse" - platforms: [js, jvm, native] - }, - { - title: "cats-scalatest" - description: "Scalatest bindings for Cats." - github: "https://github.com/IronCoreLabs/cats-scalatest" - affiliate: true - platforms: [js, jvm] - }, - { - title: "cats-stm" - description: "A STM implementation for Cats Effect" - github: "https://github.com/TimWSpence/cats-stm" - affiliate: true - platforms: [js, jvm, native] - }, - { - title: "Cats Tagless" - description: "A library of utilities for tagless final algebras" - github: "https://github.com/typelevel/cats-tagless/" - platforms: [js, jvm, native] - }, - { - title: "Cats-Time" - description: "Instances for Cats Typeclasses for Java 8 Time" - github: "https://github.com/typelevel/cats-time/" - platforms: [js, jvm, native] - }, - { - title: "Circe" - description: "Yet another JSON library for Scala" - github: "https://github.com/circe/circe" - affiliate: true - platforms: [js, jvm, native] - }, - { - title: "Ciris" - description: "Functional Configurations for Scala" - github: "https://github.com/vlovgr/ciris" - affiliate: true - platforms: [js, jvm, native] - }, - { - title: "coulomb" - description: "A statically typed unit analysis library for Scala" - github: "https://github.com/erikerlandson/coulomb" - affiliate: true - platforms: [js, jvm, native] - }, - { - title: "cron4s" - description: "Cross-platform CRON expression parsing for Scala" - github: "https://github.com/alonsodomin/cron4s" - affiliate: true - platforms: [js, jvm] - }, - { - title: "decline" - description: "A composable command-line parser for Scala." - github: "https://github.com/bkirwi/decline" - affiliate: true - platforms: [js, jvm, native] - }, - { - title: "discipline" - description: "Originally intended for internal use in spire, this library helps libraries declaring type classes to precisely state the laws which instances need to satisfy, and takes care of not checking derived laws multiple times." - github: "https://github.com/typelevel/discipline" - platforms: [js, jvm, native] - }, - { - title: "doobie" - description: "A pure functional JDBC layer for Scala. It is not an ORM, nor is it a relational algebra; it just provides a principled way to construct programs (and higher-level libraries) that use JDBC." - github: "https://github.com/typelevel/doobie" - platforms: [jvm] - }, - { - title: "edomata" - description: "Event-driven automata for Scala, Scala.js and scala native. This library provides purely functional state machines that can be used to create event sourced and/or CQRS style applications. It also includes production ready backends." - github: "https://github.com/hnaderi/edomata" - permalink: "https://edomata.ir/" - affiliate: true - platforms: [js, jvm, native] - }, - { - title: "eff" - description: "Extensible effects are an alternative to monad transformers for computing with effects in a functional way. This library is based on the “free-er” monad and an “open union” of effects described by Oleg Kiselyov in “Freer monads, more extensible effects”" - permalink: "http://atnos-org.github.io/eff" - github: "https://github.com/atnos-org/eff" - affiliate: true - platforms: [js, jvm, native] - }, - { - title: "endless4s" - description: "Sharded and event-sourced entities using tagless-final algebras" - permalink: "https://endless4s.github.io/" - github: "https://github.com/endless4s/endless" - affiliate: true - platforms: [jvm] - }, - { - title: "Extruder" - description: "Populate case classes from any configuration source" - github: "https://github.com/janstenpickle/extruder" - affiliate: true - platforms: [jvm] - }, - { - title: "fabric" - description: "Object-Notation Abstraction for JSON, binary, HOCON, etc." - github: "https://github.com/typelevel/fabric" - platforms: [js, jvm, native] - }, - { - title: "Feral" - description: "Feral cats are homeless, feral functions are serverless" - github: "https://github.com/typelevel/feral" - platforms: [js, jvm] - }, - { - title: "ff4s" - description: "A purely functional web frontend framework for Scala.js." - github: "https://github.com/buntec/ff4s" - affiliate: true - platforms: [js] - }, - { - title: "Fetch" - description: "Library built on top of Cats that provides efficient data access from heterogeneous dataurces" - github: "https://github.com/47deg/fetch" - affiliate: true - platforms: [js, jvm] - }, - { - title: "Finch" - description: "Purely functional basic blocks atop of Finagle for building composable HTTP APIs" - github: "https://github.com/finagle/finch" - affiliate: true - platforms: [jvm] - }, - { - title: "Frameless" - description: "Frameless is a library for working with Spark using more expressive types." - github: "https://github.com/typelevel/frameless" - platforms: [jvm] - }, - { - title: "fs2-aes" - description: "Micro library providing AES encryption/decryption of fs2.Stream[F, Byte]." - github: "https://github.com/jwojnowski/fs2-aes" - affiliate: true - platforms: [jvm] - }, - { - title: "fs2-compress" - description: "Compression Algorithms for Fs2 " - github: "https://github.com/lhns/fs2-compress" - affiliate: true - platforms: [jvm] - }, - { - title: "fs2-data" - description: "Parse and transform data (CBOR, CSV, JSON, XML) in a streaming manner" - github: "https://github.com/gnieh/fs2-data" - affiliate: true - platforms: [js, jvm, native] - }, - { - title: "fs2-dom" - description: "Idiomatic Cats Effect + FS2 integrations for Web APIs" - github: "https://github.com/armanbilge/fs2-dom" - affiliate: true - platforms: [js] - }, - { - title: "fs2-grpc" - description: "gRPC implementation for FS2/cats-effect" - github: "https://github.com/typelevel/fs2-grpc" - platforms: [jvm] - }, - { - title: "fs2" - description: "FS2 is a library for purely functional, effectful, and polymorphic stream processing library in the Scala programming language. Its design goals are compositionality, expressiveness, resource safety, and speed. The name is a modified acronym for Functional Streams for Scala (FSS, or FS2)." - github: "https://github.com/typelevel/fs2" - platforms: [js, jvm, native] - }, - { - title: "Grackle" - description: "Functional GraphQL server for the Typelevel stack" - github: "https://github.com/typelevel/grackle" - platforms: [js, jvm, native] - }, - { - title: "Hammock" - description: "Purely functional HTTP client" - github: "https://github.com/pepegar/hammock" - affiliate: true - platforms: [jvm] - }, - { - title: "http4s" - description: "A typeful, purely functional HTTP library for client and server applications" - github: "https://github.com/http4s/http4s" - affiliate: true - platforms: [js, jvm, native] - }, - { - title: "imp" - description: "Summoning implicit values" - github: "https://github.com/non/imp" - affiliate: true - platforms: [js, jvm] - }, - { - title: "jawn-fs2" - description: "Integration of jawn and fs2 for streaming, incremental JSON parsing" - github: "https://github.com/typelevel/jawn-fs2" - platforms: [js, jvm, native] - }, - { - title: "keypool" - description: "A Keyed Pool Implementation for Scala" - github: "https://github.com/typelevel/keypool" - platforms: [js, jvm, native] - }, - { - title: "kind-projector" - description: "Plugin for nicer type-lambda syntax" - github: "https://github.com/typelevel/kind-projector" - platforms: [jvm] - }, - { - title: "Kittens" - description: "Automatic type class derivation" - github: "https://github.com/typelevel/kittens" - platforms: [js, jvm, native] - }, - { - title: "Laika" - description: "Site and e-book generator and customizable text markup transformer for sbt, Scala and Scala.js" - github: "https://github.com/typelevel/Laika" - platforms: [js, jvm] - }, - { - title: "LDBC" - description: "Pure functional JDBC layer with Cats Effect 3 and Scala 3" - github: "https://github.com/takapi327/ldbc" - affiliate: true - platforms: [js, jvm, native] - }, - { - title: "Lepus" - description: "Purely functional, non-blocking RabbitMQ client for scala, scala js and scala native built on top of fs2." - github: "https://github.com/hnaderi/lepus" - permalink: "https://lepus.hnaderi.dev/" - affiliate: true - platforms: [js, jvm, native] - }, - { - title: "Libra" - description: "Compile time dimensional analysis for any problem domain" - github: "https://github.com/to-ithaca/libra" - affiliate: true - platforms: [js, jvm] - }, - { - title: "literally" - description: "Compile time validation of literal values built from strings" - github: "https://github.com/typelevel/literally" - platforms: [js, jvm, native] - }, - { - title: "log4cats" - description: "Logging Tools For Interaction with cats-effect" - github: "https://github.com/typelevel/log4cats" - platforms: [js, jvm, native] - }, - { - title: "Monix" - description: "High-performance library for composing asynchronous, event-based programs, exposing a Reactive Streams implementation along with primitives for dealing with concurrency and side-effects." - github: "https://github.com/monix/monix" - permalink: "https://monix.io" - affiliate: true - platforms: [js, jvm] - }, - { - title: "Monocle" - description: "Optics library offering a simple yet powerful API to access and transform immutable data" - github: "https://github.com/optics-dev/Monocle" - affiliate: true - platforms: [js, jvm, native] - }, - { - title: "Mouse" - description: "Enrichments to standard library classes to ease functional programming" - github: "https://github.com/typelevel/mouse/" - platforms: [js, jvm, native] - }, - { - title: "Natchez" - description: "functional tracing for cats " - github: "https://github.com/typelevel/natchez" - platforms: [js, jvm, native] - }, - { - title: "otel4s" - description: "An OpenTelemetry library based on cats-effect" - github: "https://github.com/typelevel/otel4s" - platforms: [js, jvm, native] - }, - { - title: "Outwatch" - description: "The Functional and Reactive Web-Frontend Library for Scala.js" - github: "https://github.com/outwatch/outwatch" - affiliate: true - platforms: [js] - }, - { - title: "parsley-cats" - description: "The parsley-cats library exposes Cats instances for Parsley parsing library." - github: "https://github.com/j-mie6/parsley-cats" - affiliate: true - platforms: [js, jvm, native] - }, - { - title: "Peloton" - description: "An actor library for Cats Effect" - github: "https://github.com/killaitis/peloton" - affiliate: true - platforms: [jvm] - }, - { - title: "perspective" - description: "Provides tools for generic programming, and typeclasses for monad transformers and higher kinded data." - github: "https://github.com/Katrix/perspective" - affiliate: true - platforms: [js, jvm] - }, - { - title: "PureConfig" - description: "A boilerplate-free library for loading configuration files" - github: "https://github.com/pureconfig/pureconfig" - affiliate: true - platforms: [jvm] - }, - { - title: "refined" - description: "Tools for refining types with type-level predicates which constrain the set of values described by the refined type, for example restricting to positive or negative numbers." - github: "https://github.com/fthomas/refined" - affiliate: true - platforms: [js, jvm, native] - }, - { - title: "ScalaCheck" - description: "ScalaCheck is a library for automated property-based testing. It contains generators for randomized test data and combinators for properties." - github: "https://github.com/typelevel/scalacheck" - permalink: "http://scalacheck.org/" - platforms: [js, jvm, native] - }, - { - title: "scalacheck-shapeless" - description: "Automatic derivation for ScalaCheck" - github: "https://github.com/alexarchambault/scalacheck-shapeless" - affiliate: true - platforms: [js, jvm, native] - }, - { - title: "Scala Exercises" - description: "Platform and framework for Scala devs to learn about Scala libraries" - github: "https://github.com/scala-exercises/scala-exercises" - affiliate: true - platforms: [js, jvm] - }, - { - title: "scala-steward" - description: "A robot that helps keeping Scala projects up-to-date" - github: "https://github.com/fthomas/scala-steward" - affiliate: true - platforms: [jvm] - }, - { - title: "scodec" - description: "scodec is a combinator library for working with binary data. It focuses on contract-first and pure functional encoding and decoding of binary data and provides integration with shapeless." - github: "https://github.com/scodec/scodec" - affiliate: true - platforms: [js, jvm, native] - }, - { - title: "Scoverage" - description: "Code coverage tool for Scala" - github: "https://github.com/scoverage/scalac-scoverage-plugin" - affiliate: true - platforms: [js, jvm, native] - }, - { - title: "Shapeless" - description: "Shapeless is a generic programming library. Starting with implementations of Scrap your boilerplate and higher rank polymorphism in Scala, it quickly grew to provide advanced abstract tools like heterogenous lists and automatic instance derivation for type classes." - github: "https://github.com/milessabin/shapeless" - affiliate: true - platforms: [js, jvm, native] - }, - { - title: "simulacrum" - description: "First-class syntax for type classes" - github: "https://github.com/typelevel/simulacrum" - platforms: [js, jvm, native] - }, - { - title: "Simulacrum Scalafix" - description: "Simulacrum as Scalafix rules" - github: "https://github.com/typelevel/simulacrum-scalafix" - platforms: [js, jvm] - }, - { - title: "singleton-ops" - description: "Operations for primitive and String singleton types" - github: "https://github.com/fthomas/singleton-ops" - affiliate: true - platforms: [js, jvm] - }, - { - title: "Skunk" - description: "A data access library for Scala + Postgres" - github: "https://github.com/typelevel/skunk" - platforms: [js, jvm, native] - }, - { - title: "sonic" - description: "Property-based testing with integrated shrinking" - github: "https://github.com/melrief/sonic" - affiliate: true - platforms: [jvm] - }, - { - title: "specs2" - description: "specs2 is a library for writing executable software specifications, aiming for conciseness, readability and extensibility." - github: "https://github.com/etorreborre/specs2" - permalink: "http://specs2.org/" - affiliate: true - platforms: [js, jvm, native] - }, - { - title: "spire" - description: "Spire is a numeric library for Scala which is intended to be generic, fast, and precise. Using features such as specialization, macros, type classes, and implicits, Spire works hard to defy conventional wisdom around performance and precision trade-offs." - github: "https://github.com/typelevel/spire" - platforms: [js, jvm, native] - }, - { - title: "Squants" - description: "The Scala API for Quantities, Units of Measure and Dimensional Analysis" - github: "https://github.com/typelevel/squants" - platforms: [js, jvm, native] - }, - { - title: "Twiddles" - description: "Micro-library for building effectful protocols" - github: "https://github.com/typelevel/twiddles" - platforms: [js, jvm, native] - }, - { - title: "TwoTails" - description: "A compiler plugin adding support for mutual tail recursion" - github: "https://github.com/wheaties/TwoTails" - affiliate: true - platforms: [jvm] - }, - { - title: "typelevel.g8" - description: "A Giter8 template for sbt-typelevel" - github: "https://github.com/typelevel/typelevel.g8" - platforms: [js, jvm] - }, - { - title: "typelevel-nix" - description: "Development tools for Typelevel projects" - github: "https://github.com/typelevel/typelevel-nix" - platforms: [js, jvm, native]}, + title: "Core" + description: "The Typelevel ecosystem is built on a small core foundation of organization maintained libraries. These libraries provide the basic building blocks for writing purely functional programs in Scala. They are available for all Scala platforms: JVM, JS and Native." + projects: [ + { + title: "Cats" + description: "Reusable abstractions and data types for functional programming." + permalink: "https://typelevel.org/cats/" + github: "https://github.com/typelevel/cats" + platforms: [js, jvm, native] + core: true + }, + { + title: "Cats Effect" + description: "Purely functional, responsive, high performance, non-blocking I/O runtime." + permalink: "https://typelevel.org/cats-effect/" + github: "https://github.com/typelevel/cats-effect/" + platforms: [js, jvm, native] + core: true + }, + { + title: "FS2" + description: "Functional, effectful, concurrent stream library with support for file and network I/O." + permalink: "https://fs2.io/" + github: "https://github.com/typelevel/fs2" + platforms: [js, jvm, native] + core: true + }, + ] + }, + { + title: "Observability" + description: "On top of the core projects, the foundation maintains standard libraries for logging and observability of Cats Effect applications:" + projects: [ + { + title: "log4cats" + description: "Logging integration for Cats Effect, supporting standard SLF4J backends." + github: "https://github.com/typelevel/log4cats" + permalink: "https://typelevel.org/log4cats/" + platforms: [js, jvm, native] + }, + { + title: "otel4s" + description: "OpenTelemetry tracing and metrics for Cats Effect and applications built on it." + github: "https://github.com/typelevel/otel4s" + platforms: [js, jvm, native] + }, + ] + }, + { + title: "Testing" + description: "Testing libraries that go beyond unit tests." + projects: [ + { + title: "Weaver" + description: "An integration and end-to-end testing framework, integrated with ScalaCheck and discipline." + permalink: "https://typelevel.org/weaver-test/" + github: "https://github.com/typelevel/weaver-test" + platforms: [jvm] + }, + { + title: "ScalaCheck" + description: "A library for automated property-based testing with generators for randomized test data." + github: "https://github.com/typelevel/scalacheck" + permalink: "http://scalacheck.org/" + platforms: [js, jvm, native] + }, + { + title: "discipline" + description: "Library for specifiying typeclasses laws and validating that instances satisfy them." + github: "https://github.com/typelevel/discipline" + platforms: [js, jvm, native] + }, + ] + } { - title: "uniform-scala" - description: "Functional user journeys" - github: "https://github.com/ltbs/uniform-scala" - affiliate: true - platforms: [js, jvm] - }, + title: "Integrations" + description: "Support for various protocols, formats and databases, built on top of FS2 and Cats Effect." + projects: [ + { + title: "Circe" + description: "Yet another JSON library for Scala" + github: "https://github.com/circe/circe" + permalink: "https://circe.io/circe/" + platforms: [js, jvm, native] + }, + { + title: "doobie" + description: "A pure functional JDBC layer for Scala. It is not an ORM, nor is it a relational algebra; it just provides a principled way to construct programs (and higher-level libraries) that use JDBC." + github: "https://github.com/typelevel/doobie" + permalink: "https://typelevel.org/doobie/" + platforms: [jvm] + }, + { + title: "fabric" + description: "Object-Notation Abstraction for JSON, binary, HOCON, etc." + github: "https://github.com/typelevel/fabric" + platforms: [js, jvm, native] + }, + { + title: "Feral" + description: "A framework for writing serverless functions in Scala with Cats Effect and deploying them to the cloud." + github: "https://github.com/typelevel/feral" + platforms: [js, jvm] + }, + { + title: "Frameless" + description: "Library for working with Spark using more expressive types." + github: "https://github.com/typelevel/frameless" + platforms: [jvm] + }, + { + title: "fs2-grpc" + description: "gRPC implementation built on the Typelevel stack." + github: "https://github.com/typelevel/fs2-grpc" + platforms: [jvm] + }, + { + title: "fs2-kafka" + description: "Kafka producer and consumer streams for FS2" + github: "https://github.com/typelevel/fs2-kafka" + permalink: "https://typelevel.org/fs2-kafka/" + platforms: [jvm] + } + { + title: "Grackle" + description: "Functional GraphQL server for the Typelevel stack." + github: "https://github.com/typelevel/grackle" + permalink: "https://typelevel.org/grackle/" + platforms: [js, jvm, native] + }, + { + title: "http4s" + description: "A minimal, idiomatic Scala HTTP interface for client and server applications." + github: "https://github.com/http4s/http4s" + permalink: "https://http4s.org/" + platforms: [js, jvm, native] + }, + { + title: "jawn-fs2" + description: "Integration of jawn and FS2 for streaming, incremental JSON parsing" + github: "https://github.com/typelevel/jawn-fs2" + platforms: [js, jvm, native] + }, + { + title: "scodec" + description: "scodec is a combinator library for working with binary data. It focuses on contract-first and pure functional encoding and decoding of binary data." + github: "https://github.com/scodec/scodec" + platforms: [js, jvm, native] + }, + { + title: "Skunk" + description: "A data access library for Scala + Postgres" + github: "https://github.com/typelevel/skunk" + permalink: "https://typelevel.org/skunk/" + platforms: [js, jvm, native] + }, + ] + } { - title: "upperbound" - description: "A purely functional, interval based rate limiter" - github: "https://github.com/SystemFw/upperbound" - affiliate: true - platforms: [js, jvm, native]}, + title: "Tools" + description: "The Typelevel Foundation uses several tools to help build and manage its libraries, which are also available for use by others." + projects: [ + { + title: "Laika" + description: "Site and e-book generator and customizable text markup transformer for sbt, Scala and Scala.js" + github: "https://github.com/typelevel/Laika" + permalink: "https://typelevel.org/Laika/" + platforms: [js, jvm] + }, + { + title: "sbt-typelevel" + description: "SBT plugin for for developing, testing, cross-building, publishing, and documenting your Scala library on GitHub, with a focus on semantic versioning and binary compatibility." + github: "https://github.com/typelevel/sbt-typelevel" + permalink: "https://typelevel.org/sbt-typelevel/" + platforms: [jvm] + } + { + title: "typelevel-nix" + description: "Reproducible build environments for Scala, using nix." + github: "https://github.com/typelevel/typelevel-nix" + platforms: [js, jvm, native] + }, + { + title: "typelevel.g8" + description: "A Giter8 template for sbt-typelevel." + github: "https://github.com/typelevel/typelevel.g8" + platforms: [js, jvm] + }, + ] + } { - title: "vault" - description: "Type-safe, persistent storage for values of arbitrary types" - github: "https://github.com/typelevel/vault" - platforms: [js, jvm, native] + title:"Other Projects" + description: "Various utilities and helper libraries for the Typelevel ecosystem." + projects: [ + { + title: "case-insensitive" + description: "A case-insensitive string for Scala" + github: "https://github.com/typelevel/case-insensitive" + permalink: "https://typelevel.org/case-insensitive/" + platforms: [js, jvm, native] + }, + { + title: "catapult" + description: "A thin wrapper for the Launch Darkly Java server SDK using Cats Effect and FS2" + github: "https://github.com/typelevel/catapult" + platforms: [jvm] + }, + { + title: "catbird" + description: "Cats instances for various Twitter Open Source Scala projects" + github: "https://github.com/typelevel/catbird" + platforms: [jvm] + }, + { + title: "Cats Collections" + description: "Purely functional collection types built for use with Cats." + github: "https://github.com/typelevel/cats-collections" + permalink: "https://typelevel.org/cats-collections/" + platforms: [js, jvm, native] + }, + { + title: "Cats MTL" + description: "Monad transformers typeclasses for Cats." + github: "https://github.com/typelevel/cats-mtl/" + platforms: [js, jvm, native] + }, + { + title: "cats-parse" + description: "A parsing library for the Cats ecosystem" + github: "https://github.com/typelevel/cats-parse" + permalink: "https://typelevel.org/cats-parse/" + platforms: [js, jvm, native] + }, + { + title: "Cats Tagless" + description: "A library of utilities for tagless final algebras." + github: "https://github.com/typelevel/cats-tagless/" + permalink: "https://typelevel.org/cats-tagless/" + platforms: [js, jvm, native] + }, + { + title: "cats-time" + description: "Instances for Cats Typeclasses for Java 8 date and time API" + github: "https://github.com/typelevel/cats-time/" + permalink: "https://typelevel.org/cats-time/" + platforms: [js, jvm, native] + }, + { + title: "keypool" + description: "A Keyed Pool Implementation for Scala" + github: "https://github.com/typelevel/keypool" + platforms: [js, jvm, native] + }, + { + title: "kind-projector" + description: "Plugin for nicer type-lambda syntax" + github: "https://github.com/typelevel/kind-projector" + platforms: [jvm] + }, + { + title: "Kittens" + description: "Automatic type class derivation" + github: "https://github.com/typelevel/kittens" + platforms: [js, jvm, native] + }, + { + title: "literally" + description: "Compile time validation of literal values built from strings" + github: "https://github.com/typelevel/literally" + platforms: [js, jvm, native] + }, + { + title: "Mouse" + description: "Enrichments to standard library classes to ease functional programming" + github: "https://github.com/typelevel/mouse/" + platforms: [js, jvm, native] + }, + { + title: "Natchez" + description: "Functional tracing for Cats Effect." + github: "https://github.com/typelevel/natchez" + platforms: [js, jvm, native] + }, + { + title: "simulacrum" + description: "First-class syntax for type classes" + github: "https://github.com/typelevel/simulacrum" + platforms: [js, jvm, native] + }, + { + title: "Simulacrum Scalafix" + description: "Simulacrum as Scalafix rules" + github: "https://github.com/typelevel/simulacrum-scalafix" + platforms: [js, jvm] + }, + { + title: "spire" + description: "Spire is a numeric library for Scala which is intended to be generic, fast, and precise." + github: "https://github.com/typelevel/spire" + permalink: "https://spire-math.org/" + platforms: [js, jvm, native] + }, + { + title: "Squants" + description: "The Scala API for Quantities, Units of Measure and Dimensional Analysis" + github: "https://github.com/typelevel/squants" + permalink: "https://typelevel.org/squants/" + platforms: [js, jvm, native] + }, + { + title: "Twiddles" + description: "Micro-library for building effectful protocols" + github: "https://github.com/typelevel/twiddles" + platforms: [js, jvm, native] + }, + { + title: "vault" + description: "Type-safe, persistent storage for values of arbitrary types." + github: "https://github.com/typelevel/vault" + permalink: "https://typelevel.org/vault/" + platforms: [js, jvm, native] + } + ] + }, + { + anchor: "affiliate" + title: "Affiliate Projects" + projects: [ + { + title: "argonaut-shapeless" + description: "Automatic derivation for argonaut" + github: "https://github.com/alexarchambault/argonaut-shapeless" + platforms: [jvm] + }, + { + title: "banana-rdf" + description: "RDF, SPARQL and Linked Data technologies" + github: "https://github.com/banana-rdf/banana-rdf" + platforms: [js, jvm] + }, + { + title: "calico" + description: "Pure, reactive UI library for building web applications with Cats Effect + FS2" + github: "https://github.com/armanbilge/calico" + permalink: "https://armanbilge.github.io/calico" + platforms: [js] + }, + { + title: "cats-actors" + description: "An Actor Model implementation built on top of Cats Effect, providing a higher-level abstraction for managing concurrency." + github: "https://github.com/suprnation/cats-actors" + platforms: [js, jvm, native] + }, + { + title: "cats-scalatest" + description: "Scalatest bindings for Cats." + github: "https://github.com/IronCoreLabs/cats-scalatest" + platforms: [js, jvm] + }, + { + title: "cats-stm" + description: "A software-transactional-memory implementation for Cats Effect." + github: "https://github.com/TimWSpence/cats-stm" + platforms: [js, jvm, native] + }, + { + title: "Ciris" + description: "Functional Configurations for Scala" + github: "https://github.com/vlovgr/ciris" + platforms: [js, jvm, native] + }, + { + title: "coulomb" + description: "A statically typed unit analysis library for Scala" + github: "https://github.com/erikerlandson/coulomb" + platforms: [js, jvm, native] + }, + { + title: "cron4s" + description: "Cross-platform CRON expression parsing for Scala" + github: "https://github.com/alonsodomin/cron4s" + platforms: [js, jvm] + }, + { + title: "decline" + description: "A composable command-line parser for Scala." + github: "https://github.com/bkirwi/decline" + platforms: [js, jvm, native] + }, + { + title: "edomata" + description: "Event-driven automata for Scala, Scala.js and scala native. This library provides purely functional state machines that can be used to create event sourced and/or CQRS style applications. It also includes production ready backends." + github: "https://github.com/hnaderi/edomata" + permalink: "https://edomata.ir/" + platforms: [js, jvm, native] + }, + { + title: "eff" + description: "Extensible effects are an alternative to monad transformers for computing with effects in a functional way. This library is based on the “free-er” monad and an “open union” of effects described by Oleg Kiselyov in “Freer monads, more extensible effects”" + permalink: "http://atnos-org.github.io/eff" + github: "https://github.com/atnos-org/eff" + platforms: [js, jvm, native] + }, + { + title: "endless4s" + description: "Sharded and event-sourced entities using tagless-final algebras" + permalink: "https://endless4s.github.io/" + github: "https://github.com/endless4s/endless" + platforms: [jvm] + }, + { + title: "Extruder" + description: "Populate case classes from any configuration source" + github: "https://github.com/janstenpickle/extruder" + platforms: [jvm] + }, + { + title: "ff4s" + description: "A purely functional web frontend framework for Scala.js." + github: "https://github.com/buntec/ff4s" + platforms: [js] + }, + { + title: "Fetch" + description: "Library built on top of Cats that provides efficient data access from heterogeneous dataurces" + github: "https://github.com/47deg/fetch" + platforms: [js, jvm] + }, + { + title: "Finch" + description: "Purely functional basic blocks atop of Finagle for building composable HTTP APIs" + github: "https://github.com/finagle/finch" + platforms: [jvm] + }, + { + title: "fs2-aes" + description: "Micro library providing AES encryption/decryption of FS2 byte streams." + github: "https://github.com/jwojnowski/fs2-aes" + platforms: [jvm] + }, + { + title: "fs2-compress" + description: "Compression Algorithms for Fs2 " + github: "https://github.com/lhns/fs2-compress" + platforms: [jvm] + }, + { + title: "fs2-data" + description: "Parse and transform data (CBOR, CSV, JSON, XML) in a streaming manner" + github: "https://github.com/gnieh/fs2-data" + platforms: [js, jvm, native] + }, + { + title: "fs2-dom" + description: "Idiomatic Cats Effect + FS2 integrations for Web APIs" + github: "https://github.com/armanbilge/fs2-dom" + platforms: [js] + }, + { + title: "Hammock" + description: "Purely functional HTTP client" + github: "https://github.com/pepegar/hammock" + platforms: [jvm] + }, + { + title: "imp" + description: "Summoning implicit values" + github: "https://github.com/non/imp" + platforms: [js, jvm] + }, + { + title: "LDBC" + description: "Pure functional JDBC layer with Cats Effect 3 and Scala 3" + github: "https://github.com/takapi327/ldbc" + platforms: [js, jvm, native] + }, + { + title: "Lepus" + description: "Purely functional, non-blocking RabbitMQ client built on top of FS2." + github: "https://github.com/hnaderi/lepus" + permalink: "https://lepus.hnaderi.dev/" + platforms: [js, jvm, native] + }, + { + title: "Libra" + description: "Compile time dimensional analysis for any problem domain" + github: "https://github.com/to-ithaca/libra" + platforms: [js, jvm] + }, + { + title: "Monix" + description: "High-performance library for composing asynchronous, event-based programs, exposing a Reactive Streams implementation along with primitives for dealing with concurrency and side-effects." + github: "https://github.com/monix/monix" + permalink: "https://monix.io" + platforms: [js, jvm] + }, + { + title: "Monocle" + description: "Optics library offering a simple yet powerful API to access and transform immutable data" + github: "https://github.com/optics-dev/Monocle" + permalink: "https://www.optics.dev/Monocle/" + platforms: [js, jvm, native] + }, + { + title: "Outwatch" + description: "The Functional and Reactive Web-Frontend Library for Scala.js" + github: "https://github.com/outwatch/outwatch" + platforms: [js] + }, + { + title: "parsley-cats" + description: "The parsley-cats library exposes Cats instances for Parsley parsing library." + github: "https://github.com/j-mie6/parsley-cats" + platforms: [js, jvm, native] + }, + { + title: "Peloton" + description: "An actor library for Cats Effect" + github: "https://github.com/killaitis/peloton" + platforms: [jvm] + }, + { + title: "perspective" + description: "Provides tools for generic programming, and typeclasses for monad transformers and higher kinded data." + github: "https://github.com/Katrix/perspective" + platforms: [js, jvm] + }, + { + title: "PureConfig" + description: "A boilerplate-free library for loading configuration files" + github: "https://github.com/pureconfig/pureconfig" + platforms: [jvm] + }, + { + title: "refined" + description: "Tools for refining types with type-level predicates which constrain the set of values described by the refined type, for example restricting to positive or negative numbers." + github: "https://github.com/fthomas/refined" + platforms: [js, jvm, native] + }, + { + title: "scalacheck-shapeless" + description: "Automatic derivation for ScalaCheck" + github: "https://github.com/alexarchambault/scalacheck-shapeless" + platforms: [js, jvm, native] + }, + { + title: "Scala Exercises" + description: "Platform and framework for Scala devs to learn about Scala libraries" + github: "https://github.com/scala-exercises/scala-exercises" + platforms: [js, jvm] + }, + { + title: "scala-steward" + description: "A robot that helps keeping Scala projects up-to-date" + github: "https://github.com/fthomas/scala-steward" + platforms: [jvm] + }, + { + title: "Scoverage" + description: "Code coverage tool for Scala" + github: "https://github.com/scoverage/scalac-scoverage-plugin" + platforms: [js, jvm, native] + }, + { + title: "Shapeless" + description: "Shapeless is a generic programming library. Provides advanced abstract tools like heterogenous lists and automatic instance derivation for type classes." + github: "https://github.com/milessabin/shapeless" + platforms: [js, jvm, native] + }, + { + title: "singleton-ops" + description: "Operations for primitive and String singleton types" + github: "https://github.com/fthomas/singleton-ops" + platforms: [js, jvm] + }, + { + title: "sonic" + description: "Property-based testing with integrated shrinking" + github: "https://github.com/melrief/sonic" + platforms: [jvm] + }, + { + title: "specs2" + description: "specs2 is a library for writing executable software specifications, aiming for conciseness, readability and extensibility." + github: "https://github.com/etorreborre/specs2" + permalink: "http://specs2.org/" + platforms: [js, jvm, native] + }, + { + title: "TwoTails" + description: "A compiler plugin adding support for mutual tail recursion" + github: "https://github.com/wheaties/TwoTails" + platforms: [jvm] + }, + { + title: "uniform-scala" + description: "Functional user journeys" + github: "https://github.com/ltbs/uniform-scala" + platforms: [js, jvm] + }, + { + title: "upperbound" + description: "A purely functional, interval based rate limiter" + github: "https://github.com/SystemFw/upperbound" + platforms: [js, jvm, native]}, + ] } ]