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..b0ad82ac 100644
--- a/src/projects/default.template.html
+++ b/src/projects/default.template.html
@@ -1,41 +1,136 @@
@: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
+
+
+
Core
+
+ 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.
+
+
+ @:for(projects)
+ @:if(_.core)
+
+ @:include(/templates/project.template.html)
+
+ @:@
+ @:@
+
+ @:include(top.template.html)
+
+
Observability
+
+ On top of the core projects, the foundation maintains standard libraries for
+ logging and observability of Cats Effect applications:
+
+
+ @:for(projects)
+ @:if(_.observability)
+
+ @:include(/templates/project.template.html)
+
+ @:@
+ @:@
+
+ @:include(top.template.html)
+
+
Testing
+
+ Testing libraries that go beyond unit tests:
+
@:for(projects)
+ @:if(_.testing)
-
-
-
-
${_.description}
-
- @:if(_.affiliate)
- Affiliate Project
- @:else
- Organization Project
- @:@
- @:for(_.platforms)
- ${_}
- @:@
-
-
-
+ @:include(/templates/project.template.html)
@:@
+ @:@
+
+ @:include(top.template.html)
+
+
Integrations
+
+ Support for various protocols, formats and databases, built on top of FS2
+ and Cats Effect:
+
+
+ @:for(projects)
+ @:if(_.integration)
+
+ @:include(/templates/project.template.html)
+
+ @:@
+ @:@
+ @:include(top.template.html)
+
+
+
+ The Typelevel Foundation uses several tools to help build and manage its
+ libraries, which are also available for use by others:
+
+
+ @:for(projects)
+ @:if(_.tool)
+
+ @:include(/templates/project.template.html)
+
+ @:@
+ @:@
+
+ @:include(top.template.html)
+
+
Other Projects
+
+ Various utilities and helper libraries for the Typelevel ecosystem:
+
+
+ @:for(projects)
+ @:if(_.other)
+
+ @:include(/templates/project.template.html)
+
+ @:@
+ @:@
+
+ @:include(top.template.html)
+
+
Affiliate Projects
+
+ @:for(projects)
+ @:if(_.affiliate)
+
+ @:include(/templates/project.template.html)
+
+ @:@
+ @:@
+
+ @:include(top.template.html)
+
@:@
diff --git a/src/projects/directory.conf b/src/projects/directory.conf
index 2211a80c..1bb4e7c3 100644
--- a/src/projects/directory.conf
+++ b/src/projects/directory.conf
@@ -1,80 +1,69 @@
projects = [
{
title: "argonaut-shapeless"
- description: "Automatic derivation for argonaut"
+ 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"
+ 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"
+ 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"
+ description: "A case-insensitive string for Scala."
github: "https://github.com/typelevel/case-insensitive"
+ permalink: "https://typelevel.org/case-insensitive/"
+ other: true
platforms: [js, jvm, native]
},
{
title: "catapult"
- description: "A thin wrapper for the Launch Darkly Java server SDK using cats-effect and fs2"
+ description: "A thin wrapper for the Launch Darkly Java server SDK using Cats Effect and FS2."
github: "https://github.com/typelevel/catapult"
+ other: true
platforms: [jvm]
},
{
title: "catbird"
- description: "Cats instances for various Twitter Open Source Scala projects"
+ description: "Cats instances for various Twitter Open Source Scala projects."
github: "https://github.com/typelevel/catbird"
+ other: true
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."
+ description: "Reusable abstractions and data types for functional programming."
permalink: "https://typelevel.org/cats/"
github: "https://github.com/typelevel/cats"
+ core: true
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/"
+ 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: "cats-parse"
- description: "A parsing library for the cats ecosystem"
+ description: "A parsing library for the Cats ecosystem."
github: "https://github.com/typelevel/cats-parse"
+ permalink: "https://typelevel.org/cats-parse/"
+ other: true
platforms: [js, jvm, native]
},
{
@@ -86,47 +75,75 @@ projects = [
},
{
title: "cats-stm"
- description: "A STM implementation for Cats Effect"
+ description: "A software-transactional-memory 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/"
+ 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/"
+ other: true
platforms: [js, jvm, native]
},
{
- title: "Cats-Time"
- description: "Instances for Cats Typeclasses for Java 8 Time"
- github: "https://github.com/typelevel/cats-time/"
+ 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/"
+ other: true
+ platforms: [js, jvm, native]
+ },
+ {
+ 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/"
+ core: true
+ platforms: [js, jvm, native]
+ },
+ {
+ title: "Cats MTL"
+ description: "Monad transformers typeclasses for Cats."
+ github: "https://github.com/typelevel/cats-mtl/"
+ other: true
+ 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/"
+ other: true
platforms: [js, jvm, native]
},
{
title: "Circe"
- description: "Yet another JSON library for Scala"
+ description: "Yet another JSON library for Scala."
github: "https://github.com/circe/circe"
- affiliate: true
+ permalink: "https://circe.io/circe/"
+ integration: true
platforms: [js, jvm, native]
},
{
title: "Ciris"
- description: "Functional Configurations for Scala"
+ 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"
+ 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"
+ description: "Cross-platform CRON expression parsing for Scala."
github: "https://github.com/alonsodomin/cron4s"
affiliate: true
platforms: [js, jvm]
@@ -140,14 +157,17 @@ projects = [
},
{
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."
+ description: "A library for specifiying typeclasses laws and validating that instances satisfy them."
github: "https://github.com/typelevel/discipline"
+ testing: true
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/"
+ integration: true
platforms: [jvm]
},
{
@@ -168,7 +188,7 @@ projects = [
},
{
title: "endless4s"
- description: "Sharded and event-sourced entities using tagless-final algebras"
+ description: "Sharded and event-sourced entities using tagless-final algebras."
permalink: "https://endless4s.github.io/"
github: "https://github.com/endless4s/endless"
affiliate: true
@@ -176,7 +196,7 @@ projects = [
},
{
title: "Extruder"
- description: "Populate case classes from any configuration source"
+ description: "Populate case classes from any configuration source."
github: "https://github.com/janstenpickle/extruder"
affiliate: true
platforms: [jvm]
@@ -185,12 +205,21 @@ projects = [
title: "fabric"
description: "Object-Notation Abstraction for JSON, binary, HOCON, etc."
github: "https://github.com/typelevel/fabric"
+ integration: true
platforms: [js, jvm, native]
},
{
title: "Feral"
- description: "Feral cats are homeless, feral functions are serverless"
+ description: "A framework for writing serverless functions in Scala with Cats Effect and deploying them to the cloud."
github: "https://github.com/typelevel/feral"
+ integration: true
+ platforms: [js, jvm]
+ },
+ {
+ 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]
},
{
@@ -200,133 +229,147 @@ projects = [
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"
+ 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."
+ description: "Library for working with Spark using more expressive types."
github: "https://github.com/typelevel/frameless"
+ integration: true
platforms: [jvm]
},
+ {
+ 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"
+ core: true
+ platforms: [js, jvm, native]
+ },
{
title: "fs2-aes"
- description: "Micro library providing AES encryption/decryption of fs2.Stream[F, Byte]."
+ description: "Micro library providing AES encryption/decryption of FS2 byte streams."
github: "https://github.com/jwojnowski/fs2-aes"
affiliate: true
platforms: [jvm]
},
{
title: "fs2-compress"
- description: "Compression Algorithms for Fs2 "
+ 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"
+ 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"
+ 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"
+ description: "gRPC implementation built on the Typelevel stack."
github: "https://github.com/typelevel/fs2-grpc"
+ integration: true
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: "fs2-kafka"
+ description: "Kafka producer and consumer streaming support built on FS2."
+ github: "https://github.com/typelevel/fs2-kafka"
+ permalink: "https://typelevel.org/fs2-kafka/"
+ integration: true
+ platforms: [jvm]
},
{
title: "Grackle"
- description: "Functional GraphQL server for the Typelevel stack"
+ description: "Functional GraphQL server for the Typelevel stack."
github: "https://github.com/typelevel/grackle"
+ permalink: "https://typelevel.org/grackle/"
+ integration: true
platforms: [js, jvm, native]
},
{
title: "Hammock"
- description: "Purely functional HTTP client"
+ 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"
+ description: "A minimal, idiomatic Scala HTTP interface for client and server applications."
github: "https://github.com/http4s/http4s"
- affiliate: true
+ permalink: "https://http4s.org/"
+ integration: true
platforms: [js, jvm, native]
},
{
title: "imp"
- description: "Summoning implicit values"
+ 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"
+ description: "Integration of jawn and FS2 for streaming, incremental JSON parsing."
github: "https://github.com/typelevel/jawn-fs2"
+ integration: true
platforms: [js, jvm, native]
},
{
title: "keypool"
- description: "A Keyed Pool Implementation for Scala"
+ description: "A Keyed Pool Implementation for Scala."
github: "https://github.com/typelevel/keypool"
+ other: true
platforms: [js, jvm, native]
},
{
title: "kind-projector"
- description: "Plugin for nicer type-lambda syntax"
+ description: "Plugin for nicer type-lambda syntax."
github: "https://github.com/typelevel/kind-projector"
+ other: true
platforms: [jvm]
},
{
title: "Kittens"
- description: "Automatic type class derivation"
+ description: "Automatic type class derivation."
github: "https://github.com/typelevel/kittens"
+ other: true
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"
+ permalink: "https://typelevel.org/Laika/"
+ tool: true
platforms: [js, jvm]
},
{
title: "LDBC"
- description: "Pure functional JDBC layer with Cats Effect 3 and Scala 3"
+ 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."
+ description: "Purely functional, non-blocking RabbitMQ client built on top of FS2."
github: "https://github.com/hnaderi/lepus"
permalink: "https://lepus.hnaderi.dev/"
affiliate: true
@@ -334,21 +377,24 @@ projects = [
},
{
title: "Libra"
- description: "Compile time dimensional analysis for any problem domain"
+ 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"
+ description: "Compile time validation of literal values built from strings."
github: "https://github.com/typelevel/literally"
+ other: true
platforms: [js, jvm, native]
},
{
title: "log4cats"
- description: "Logging Tools For Interaction with cats-effect"
+ description: "Logging integration for Cats Effect, supporting standard SLF4J backends."
github: "https://github.com/typelevel/log4cats"
+ permalink: "https://typelevel.org/log4cats/"
+ observability: true
platforms: [js, jvm, native]
},
{
@@ -361,32 +407,36 @@ projects = [
},
{
title: "Monocle"
- description: "Optics library offering a simple yet powerful API to access and transform immutable data"
+ 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/"
affiliate: true
platforms: [js, jvm, native]
},
{
title: "Mouse"
- description: "Enrichments to standard library classes to ease functional programming"
+ description: "Enrichments to standard library classes to ease functional programming."
github: "https://github.com/typelevel/mouse/"
+ other: true
platforms: [js, jvm, native]
},
{
title: "Natchez"
- description: "functional tracing for cats "
+ description: "Functional tracing for Cats Effect."
github: "https://github.com/typelevel/natchez"
+ other: true
platforms: [js, jvm, native]
},
{
title: "otel4s"
- description: "An OpenTelemetry library based on cats-effect"
+ description: "OpenTelemetry tracing and metrics for Cats Effect and applications built on it."
github: "https://github.com/typelevel/otel4s"
+ observability: true
platforms: [js, jvm, native]
},
{
title: "Outwatch"
- description: "The Functional and Reactive Web-Frontend Library for Scala.js"
+ description: "The Functional and Reactive Web-Frontend Library for Scala.js."
github: "https://github.com/outwatch/outwatch"
affiliate: true
platforms: [js]
@@ -400,7 +450,7 @@ projects = [
},
{
title: "Peloton"
- description: "An actor library for Cats Effect"
+ description: "An actor library for Cats Effect."
github: "https://github.com/killaitis/peloton"
affiliate: true
platforms: [jvm]
@@ -414,7 +464,7 @@ projects = [
},
{
title: "PureConfig"
- description: "A boilerplate-free library for loading configuration files"
+ description: "A boilerplate-free library for loading configuration files."
github: "https://github.com/pureconfig/pureconfig"
affiliate: true
platforms: [jvm]
@@ -427,86 +477,106 @@ projects = [
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: "sbt-tpolecat"
+ description: "An SBT plugin for automagically configuring good default scalac options for writing code on the Typelevel stack, based on the project Scala version."
+ github: "https://github.com/typelevel/sbt-tpolecat"
+ tool: true
+ platforms: [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/"
+ tool: true
+ platforms: [jvm]
+ },
+ {
+ title: "scalac-options"
+ description: "A library containing logic for configuring Scala compiler options according to the current Scala compiler version. Usable as a building block for build tool plugins."
+ github: "https://github.com/typelevel/scalac-options"
+ tool: true
+ platforms: [jvm]
},
{
title: "scalacheck-shapeless"
- description: "Automatic derivation for ScalaCheck"
+ 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"
+ 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: "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/"
+ testing: true
+ platforms: [js, jvm, native]
+ },
{
title: "scala-steward"
- description: "A robot that helps keeping Scala projects up-to-date"
- github: "https://github.com/fthomas/scala-steward"
+ description: "A robot that helps keeping Scala projects up-to-date."
+ github: "https://github.com/scala-steward-org/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."
+ 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"
- affiliate: true
+ integration: true
platforms: [js, jvm, native]
},
{
title: "Scoverage"
- description: "Code coverage tool for Scala"
+ 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."
+ 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"
affiliate: true
platforms: [js, jvm, native]
},
{
title: "simulacrum"
- description: "First-class syntax for type classes"
+ description: "First-class syntax for type classes."
github: "https://github.com/typelevel/simulacrum"
+ other: true
platforms: [js, jvm, native]
},
{
title: "Simulacrum Scalafix"
- description: "Simulacrum as Scalafix rules"
+ description: "Simulacrum as Scalafix rules."
github: "https://github.com/typelevel/simulacrum-scalafix"
+ other: true
platforms: [js, jvm]
},
{
title: "singleton-ops"
- description: "Operations for primitive and String singleton types"
+ 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"
+ description: "A data access library for Scala + Postgres."
github: "https://github.com/typelevel/skunk"
+ permalink: "https://typelevel.org/skunk/"
+ integration: true
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."
@@ -517,57 +587,76 @@ projects = [
},
{
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."
+ 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/"
+ other: true
platforms: [js, jvm, native]
},
{
title: "Squants"
- description: "The Scala API for Quantities, Units of Measure and Dimensional Analysis"
+ description: "The Scala API for Quantities, Units of Measure and Dimensional Analysis."
github: "https://github.com/typelevel/squants"
+ permalink: "https://typelevel.org/squants/"
+ other: true
platforms: [js, jvm, native]
},
{
title: "Twiddles"
- description: "Micro-library for building effectful protocols"
+ description: "Micro-library for building effectful protocols."
github: "https://github.com/typelevel/twiddles"
+ other: true
platforms: [js, jvm, native]
},
{
title: "TwoTails"
- description: "A compiler plugin adding support for mutual tail recursion"
+ description: "A compiler plugin adding support for mutual tail recursion."
github: "https://github.com/wheaties/TwoTails"
affiliate: true
platforms: [jvm]
},
+ {
+ title: "typelevel-nix"
+ description: "Reproducible build environments for Scala, using nix."
+ github: "https://github.com/typelevel/typelevel-nix"
+ tool: true
+ platforms: [js, jvm, native]
+ },
{
title: "typelevel.g8"
- description: "A Giter8 template for sbt-typelevel"
+ description: "A Giter8 template for sbt-typelevel."
github: "https://github.com/typelevel/typelevel.g8"
+ tool: true
platforms: [js, jvm]
},
- {
- title: "typelevel-nix"
- description: "Development tools for Typelevel projects"
- github: "https://github.com/typelevel/typelevel-nix"
- platforms: [js, jvm, native]},
{
title: "uniform-scala"
- description: "Functional user journeys"
+ description: "Functional user journeys."
github: "https://github.com/ltbs/uniform-scala"
affiliate: true
platforms: [js, jvm]
},
{
title: "upperbound"
- description: "A purely functional, interval based rate limiter"
+ description: "A purely functional, interval based rate limiter."
github: "https://github.com/SystemFw/upperbound"
affiliate: true
- platforms: [js, jvm, native]},
+ platforms: [js, jvm, native],
+ },
{
title: "vault"
- description: "Type-safe, persistent storage for values of arbitrary types"
+ description: "Type-safe, persistent storage for values of arbitrary types."
github: "https://github.com/typelevel/vault"
+ permalink: "https://typelevel.org/vault/"
+ other: true
platforms: [js, jvm, native]
}
+ {
+ title: "Weaver"
+ description: "An integration testing framework for Cats Effect, integrated with ScalaCheck and discipline."
+ permalink: "https://typelevel.org/weaver-test/"
+ github: "https://github.com/typelevel/weaver-test"
+ testing: true
+ platforms: [js, jvm, native]
+ },
]
diff --git a/src/projects/top.template.html b/src/projects/top.template.html
new file mode 100644
index 00000000..5a3c7a21
--- /dev/null
+++ b/src/projects/top.template.html
@@ -0,0 +1,3 @@
+