RepositoryScalaUSUnited States
djspiewak

djspiewak/shims

Seamless interop layer between cats and scalaz

173stars
15forks
5issues
0views

🔄 Chuyển đổi liền mạch giữa cats và scalaz

Một lớp chuyển đổi hai chiều giữa cats và scalaz, ánh xạ tự động cả typeclass và datatype chỉ với một dòng import.

shims cung cấp lớp chuyển đổi hai chiều giữa cats và scalaz, bao gồm cả typeclass (ví dụ: Monad) và datatype (ví dụ: \/). Với shims, bất kỳ kiểu nào có instance cats.Functor cũng có instance scalaz.Functor và ngược lại. Mỗi datatype có thể chuyển đổi đều có hàm asCats hoặc asScalaz được thêm ngầm định.

✨ Điểm nổi bật

  • Chuyển đổi hai chiều: mọi instance cats đều có instance scalaz tương ứng và ngược lại.
  • Một dòng import: chỉ cần import shims._ để kích hoạt toàn bộ chức năng.
  • Hỗ trợ typeclass: bao gồm Alternative, Applicative, Monad, FlatMap, Bifunctor, Comonad và nhiều khác nữa.
  • Chuyển đổi datatype: thêm hàm asCats cho scalaz datatype và asScalaz cho cats datatype.
  • Hỗ trợ Scala.js: cross-build cho Scala 2.12, 2.13, Dotty 0.25–0.26.
  • shims-effect: hỗ trợ chuyển đổi giữa scalaz Task và cats-effect.

💡 Vì sao đáng chú ý

shims giải quyết bài toán đi kèm khi dự án sử dụng đồng thời cats và scalaz, tránh phải viết lớp wrapper thủ công. Tuy nhiên, kể từ Cats 2.3.0, các instance lớp chính thức được đưa vào scope ngầm định, gây mâu thuẫn không được ưu tiên. Tác giả đã quyết định ngừng bảo trì và khuyến nghị nâng cấp sang cats để trải nghiệm tốt hơn trong hệ sinh thái hiện đại.


#Scala #Cats #Scalaz #Typeclass #Interoperability #TiniX

Similar Projects

Discover other similar projects and AI models.

RepositoryScala
folone/poi.scala

Scala library for creating and manipulating Excel documents

177
Sep 24, 2026
RepositoryScala
krzemin/octopus

Scala library for boilerplate-free validation

153
Jun 24, 2024
RepositoryScala
japgolly/test-state

Scala Test-State.

144
Aug 12, 2024
RepositoryScala
scalaz/scalaz-deriving

Principled, fast, typeclass derivation.

55
Oct 19, 2026
RepositoryScala
scalaz/scalaz

Principled Functional Programming in Scala

4.7k
Oct 19, 2026
RepositoryScala
scala-exercises/scala-exercises

The easy way to learn Scala.

2.6k
Sep 23, 2025
RepositoryScala
http4s/http4s

A minimal, idiomatic Scala interface for HTTP

2.6k
Oct 17, 2026
RepositoryScala
typelevel/cats-effect

The pure asynchronous runtime for Scala

2.2k
Oct 17, 2026
RepositoryScala
monix/monix

Asynchronous, Reactive Programming for Scala and Scala.js.

1.9k
Oct 19, 2026