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)
-
-
-

- ${_.title} -

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

${_.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) + +

Tools

+

+ 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 @@ + + @:svg(fa-arrow-up)Top + diff --git a/src/templates/project.template.html b/src/templates/project.template.html new file mode 100644 index 00000000..dc505bc6 --- /dev/null +++ b/src/templates/project.template.html @@ -0,0 +1,23 @@ +
+
+

+ ${_.title} +

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

${_.description}

+
+ @:for(_.platforms) + ${_} + @:@ +
+
+