/neotypes

Scala lightweight, type-safe, asynchronous driver for neo4j

Primary LanguageScalaMIT LicenseMIT

Logo

neotype - a type specimen that is selected subsequent to the description of a species to replace a preexisting type that has been lost or destroyed.

Build status Scaladex Gitter chat Scala Steward

neotypes

Scala lightweight, type-safe, asynchronous driver (not opinionated on effect systems) for Neo4j

  • Scala - the driver provides you with support for all standard Scala types without the need to convert Scala <-> Java types back and forth and you can easily add support for your own types.
  • Lightweight - the core module of the driver only depends the Neo4j Java driver, and the generic module only depends on Shapeless.
  • Type-safe - the driver leverages typeclasses to derive all needed conversions at the compile time.
  • Asynchronous - the driver sits on top of asynchronous Java driver.
  • Not opinionated on side-effect implementation - you can use it with any effect system of your preference (Future, typelevel, ZIO, Monix) by implementing a simple typeclass.

Setup

⚠️ The library is under heavy development. Production use is at your own risk and is not recommended. ⚠️

Supports Scala 2.12 and 2.13
"io.github.neotypes" %% "neotypes-core" % version core functionality. Supports scala.concurrent.Future.
"io.github.neotypes" %% "neotypes-generic" % version auto & semiauto derivation of mappers for case classes.
"io.github.neotypes" %% "neotypes-cats-effect" % version cats.effect.Async[F] implementation.
"io.github.neotypes" %% "neotypes-monix" % version monix.eval.Task implementation.
"io.github.neotypes" %% "neotypes-zio" % version zio.Task implementation.
"io.github.neotypes" %% "neotypes-akka-stream" % version result streaming for Akka Streams.
"io.github.neotypes" %% "neotypes-fs2-stream" % version result streaming for FS2.
"io.github.neotypes" %% "neotypes-monix-stream" % version result streaming for Monix Observables.
"io.github.neotypes" %% "neotypes-zio-stream" % version result streaming for ZIO ZStreams.
"io.github.neotypes" %% "neotypes-refined" % version support to insert and retrieve refined values.
"io.github.neotypes" %% "neotypes-cats-data" % version support to insert and retrieve cats.data values.
"io.github.neotypes" %% "neotypes-enumeratum" % version support to insert and retrieve Enumeratum enums.

Resources

Code of Conduct

We are committed to providing a friendly, safe and welcoming environment for all, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, nationality, or other such characteristics.

Everyone is expected to follow the Scala Code of Conduct when discussing the project on the available communication channels.

Special thanks