Skip to content

functionaljustin/duct

Repository files navigation

Duct Logo

Welcome to the DUCT library!

DUCT is the Dotty Utilising Category Theory library.1

Following in the footsteps of Scalaz and Cats, DUCT brings powerful and principled abstractions from Category Theory to Scala, but with some different design goals. DUCT is designed more for learning and experimentation than real world applications.

Goals

  • Implement the data types and type classes as simply as possible but no simpler.
  • Documented development on YouTube: Functional Justin and my blog.
  • Scala 3 first; no backwards compatibility.

Future Features

  • A simple IO type is likely along with the ability to compose parallel operations.

Documentation

Scala doc is gradually being added.

Packaging

The project can be accessed from GitHub packages as well as compiled and run from source directly.

TODO add instructions to configure GitHub packages in a project including the authorization.

<dependency>
  <groupId>io.github.functionaljustin</groupId>
  <artifactId>duct_3</artifactId>
  <version>0.5.0-SNAPSHOT</version>
</dependency>

© 2021-2025 Justin Heyes-Jones and DUCT contributors. All Rights Reserved.

Footnotes

  1. Before Scala 3 was known as such it was known as Dotty.

About

DUCT is a Scala 3 category theory and functional programming library

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Languages