Q: How to use with ZIO?

A: For use with ZIO, use ldbc-zio-interop.

libraryDependencies += "io.github.takapi327" %% "ldbc-zio-interop" % "latest"

The following is sample code for using ldbc with ZIO.

import zio.*

import ldbc.zio.interop.*
import ldbc.connector.*
import ldbc.dsl.*

object Main extends ZIOAppDefault:

  private val datasource =
    MySQLDataSource
      .build[Task]("127.0.0.1", 3306, "ldbc")
      .setPassword("password")
      .setDatabase("world")
      .setSSL(SSL.Trusted)

  private val connector = Connector.fromDataSource(datasource)

  override def run =
    sql"SELECT Name FROM city"
      .query[String]
      .to[List]
      .readOnly(connector)
      .flatMap { cities =>
        Console.printLine(cities)
      }

Performance

Performance results from the Cats Effect to ZIO conversion are shown below.

Select Benchmark for Effect System