Skip to content

mkotsur/artc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Artc Build Status Maven Central Known Vulnerabilities Cats friendly

Artc (pronounced art·sy) is an Active Read-Through Cache for cats-effect programs. Its primary goal is to allow developers to write as little code as possible to solve a common problem of reading data from services with high latency.

Motivation

Sometimes you need to integrate with slow services. This is rarely a pleasant problem to solve, but it doesn't have to take weeks to solve and destroy your development experience. Artc is here to help!

Main features

  • Non-blocking read-through;
  • Active content synchronization;
  • Automatic refresh rate adjustment;
  • Use it as a library or a REST microservice (soon).

How Artc works

Example

import io.github.mkotsur.artc.Cache
import cats.effect.{ExitCode, IO, IOApp}

// 1. Configure
case class User(name: String)

val settings: Cache.Settings  = ???
val readSource: IO[List[User]] = ???

// 2. Create as resource
val cacheR: Resource[IO, Cache[List[User]]] = 
  Cache.create(settings, readSource)

// 3. Use
for {
  latest <- cacheR.use(cache => cache.latest)
  _ <- IO(println(v))   
  _ <- updateSharesFiber.join
} yield ExitCode.Success

Adding to your project

Scala versions supported: 2.13.x.

libraryDependencies += "io.github.mkotsur" %% "artc" % {latest-version}

About

Active Read Through Cache

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages