<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Cats-Effect on Robin's blog</title><link>https://kaveland.no/tags/cats-effect/</link><description>Recent content in Cats-Effect on Robin's blog</description><generator>Hugo -- 0.145.0</generator><language>en-us</language><lastBuildDate>Thu, 16 May 2024 00:00:00 +0000</lastBuildDate><atom:link href="https://kaveland.no/tags/cats-effect/index.xml" rel="self" type="application/rss+xml"/><item><title>Porting an application from cats effects to ZIO</title><link>https://kaveland.no/posts/2024-05-16-porting-from-cats-effects-to-zio/</link><pubDate>Thu, 16 May 2024 00:00:00 +0000</pubDate><guid>https://kaveland.no/posts/2024-05-16-porting-from-cats-effects-to-zio/</guid><description>&lt;p>In my current project, we&amp;rsquo;re working on a large-ish code base that is written in
Scala and uses &lt;a href="https://typelevel.org/cats-effect/">cats effect&lt;/a> as an effect
system in large parts of the code base. If you&amp;rsquo;re not familiar with what an
effect system is, I think the most important detail is that it&amp;rsquo;s a tool that
gives you certain superpowers if you promise to be honest about it when your
code does things that can be considered &amp;ldquo;effectful&amp;rdquo;, such as interacting with
the network or reading files. We use the &lt;code>IO&lt;/code> monad from cats effect, which is a
wonderful way of writing async, concurrent code that looks a lot like
synchronous code.&lt;/p></description></item></channel></rss>