https://github.com/sagifogel/proptics
Profunctor optics and lenses library for Scala
https://github.com/sagifogel/proptics
cats folds functional-programming lenses lenses-library optics prisms profunctor-optics scala spire traversals
Last synced: 5 months ago
JSON representation
Profunctor optics and lenses library for Scala
- Host: GitHub
- URL: https://github.com/sagifogel/proptics
- Owner: sagifogel
- License: mit
- Created: 2019-12-05T21:12:00.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2025-06-07T10:41:04.000Z (10 months ago)
- Last Synced: 2025-06-07T11:21:25.314Z (10 months ago)
- Topics: cats, folds, functional-programming, lenses, lenses-library, optics, prisms, profunctor-optics, scala, spire, traversals
- Language: Scala
- Homepage: https://sagifogel.github.io/Proptics
- Size: 32.3 MB
- Stars: 11
- Watchers: 1
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

[](https://github.com/sagifogel/Proptics/actions/workflows/ci.yml)
[](https://maven-badges.herokuapp.com/maven-central/io.github.sagifogel/proptics-core_2.13)
[](https://scala-steward.org)
### Overview
Proptics is a Profunctor Optics and Lenses library for [Scala programming language](https://scala-lang.org).
It uses a Profunctor encoding for its internal representation of optics, you can learn about profunctors in the [profunctor](https://sagifogel.github.io/Proptics/docs/profunctors/profunctor) guide.
Proptics is available for Scala 2.12, Scala 2.13, Scala 3.0, and [Scala.js](http://www.scala-js.org/),
and is built on top of [Cats](https://typelevel.org/cats/), and [Spire](https://typelevel.org/spire/).
### Getting Started
Add to your `build.sbt`
```scala
libraryDependencies ++= Seq(
"io.github.sagifogel" %% "proptics-core" % "0.5.2",
"io.github.sagifogel" %% "proptics-profunctor" % "0.5.2",
"io.github.sagifogel" %% "proptics-macros" % "0.5.2"
)
```
Quick links:
* [Website][website]
* [Guide][guide]
[website]: https://sagifogel.github.io/Proptics/
[guide]: https://sagifogel.github.io/Proptics/docs/overview
[proptics-api]: https://sagifogel.github.io/Proptics/api/proptics/
### Documentation
* There is a Scaladoc API documentation for the [library][proptics-api], which includes optics ([Lens](https://sagifogel.github.io/Proptics/api/proptics/Lens_), [Traversal](https://sagifogel.github.io/Proptics/api/proptics/Traversal_) [Fold](https://sagifogel.github.io/Proptics/api/proptics/Fold_), and more)
[Profunctors](https://sagifogel.github.io/Proptics/api/proptics/profunctor/), and [Data types](https://sagifogel.github.io/Proptics/api/proptics/internal/)