All Projects → profunktor → Redis4cats

profunktor / Redis4cats

Licence: apache-2.0
🔖 Redis client built on top of Cats Effect, Fs2 and Lettuce

Programming Languages

scala
5932 projects

Projects that are alternatives of or similar to Redis4cats

Nginx Vod Module
NGINX-based MP4 Repackager
Stars: ✭ 1,378 (+629.1%)
Mutual labels:  stream, streaming
Smoothstream
Webcam, PiCamera streaming over the network with Python made easy.
Stars: ✭ 133 (-29.63%)
Mutual labels:  stream, streaming
Flink Learning
flink learning blog. http://www.54tianzhisheng.cn/ 含 Flink 入门、概念、原理、实战、性能调优、源码解析等内容。涉及 Flink Connector、Metrics、Library、DataStream API、Table API & SQL 等内容的学习案例,还有 Flink 落地应用的大型项目案例(PVUV、日志存储、百亿数据实时去重、监控告警)分享。欢迎大家支持我的专栏《大数据实时计算引擎 Flink 实战与性能优化》
Stars: ✭ 11,378 (+5920.11%)
Mutual labels:  redis, streaming
Kitura Redis
Swift Redis library
Stars: ✭ 84 (-55.56%)
Mutual labels:  redis, client
Bt
BitTorrent library and client with DHT, magnet links, encryption and more
Stars: ✭ 2,011 (+964.02%)
Mutual labels:  streaming, client
Rtmp Rtsp Stream Client Java
Library to stream in rtmp and rtsp for Android. All code in Java
Stars: ✭ 1,338 (+607.94%)
Mutual labels:  stream, streaming
Twitchrecover
Twitch VOD tool which recovers all VODs including those that are sub only or deleted.
Stars: ✭ 123 (-34.92%)
Mutual labels:  stream, streaming
Saber
Window-Based Hybrid CPU/GPU Stream Processing Engine
Stars: ✭ 35 (-81.48%)
Mutual labels:  stream, streaming
Simple Websocket
Simple, EventEmitter API for WebSockets
Stars: ✭ 159 (-15.87%)
Mutual labels:  stream, streaming
Jaxon
Streaming JSON parser for Elixir
Stars: ✭ 145 (-23.28%)
Mutual labels:  stream, streaming
Athenax
SQL-based streaming analytics platform at scale
Stars: ✭ 1,178 (+523.28%)
Mutual labels:  stream, streaming
Hstream
The streaming database built for IoT data storage and real-time processing in the 5G Era
Stars: ✭ 166 (-12.17%)
Mutual labels:  stream, streaming
Cypher Stream
Neo4j Cypher queries as Node.js object streams
Stars: ✭ 58 (-69.31%)
Mutual labels:  stream, streaming
Hls.js
HLS.js is a JavaScript library that plays HLS in browsers with support for MSE.
Stars: ✭ 10,791 (+5609.52%)
Mutual labels:  stream, streaming
Megalodon
Mastodon, Pleroma and Misskey API client library for node.js and browser
Stars: ✭ 52 (-72.49%)
Mutual labels:  streaming, client
Php Redis Client
RedisClient is a fast, fully-functional and user-friendly client for Redis, optimized for performance. RedisClient supports the latest versions of Redis starting from 2.6 to 6.0
Stars: ✭ 112 (-40.74%)
Mutual labels:  redis, client
Gitter Api
[production-ready] Gitter API implementation for php 7.0+ allowing sync, async and streaming access.
Stars: ✭ 11 (-94.18%)
Mutual labels:  streaming, client
Soundwaveinteractive
Interactive Sound Board for Mixer. Microsoft shut Mixer down, so this application no longer works. RIP Mixer.
Stars: ✭ 27 (-85.71%)
Mutual labels:  stream, streaming
Azure Event Hubs Spark
Enabling Continuous Data Processing with Apache Spark and Azure Event Hubs
Stars: ✭ 140 (-25.93%)
Mutual labels:  stream, streaming
Glob Stream
A Readable Stream interface over node-glob.
Stars: ✭ 172 (-8.99%)
Mutual labels:  stream, streaming

redis4cats

CI Status Gitter Chat Maven Central Cats friendly MergifyStatus Scala Steward badge

Redis client built on top of Cats Effect, Fs2 and the async Java client Lettuce.

Quick Start

import cats.effect._
import cats.implicits._
import dev.profunktor.redis4cats.Redis
import dev.profunktor.redis4cats.effect.Log.Stdout._

object QuickStart extends IOApp {

  override def run(args: List[String]): IO[ExitCode] =
    Redis[IO].utf8("redis://localhost").use { cmd =>
      for {
        _ <- cmd.set("foo", "123")
        x <- cmd.get("foo")
        _ <- cmd.setNx("foo", "should not happen")
        y <- cmd.get("foo")
        _ <- IO(println(x === y)) // true
      } yield ExitCode.Success
    }

}

The API is quite stable and heavily used in production. However, binary compatibility is not guaranteed across versions for now.

If you like it, give it a ⭐ ! If you think we could do better, please let us know!

Versions

The 1.x.x series is built on Cats Effect 3 whereas the 0.x.x series is built on Cats Effect 2.

Dependencies

Add this to your build.sbt for the Effects API (depends on cats-effect):

libraryDependencies += "dev.profunktor" %% "redis4cats-effects" % Version

Add this for the Streams API (depends on fs2 and cats-effect):

libraryDependencies += "dev.profunktor" %% "redis4cats-streams" % Version

Log4cats support

redis4cats needs a logger for internal use and provides instances for log4cats. It is the recommended logging library:

libraryDependencies += "dev.profunktor" %% "redis4cats-log4cats" % Version

Running the tests locally

Start both a single Redis node and a cluster using docker-compose:

> docker-compose up
> sbt +test

Code of Conduct

See the Code of Conduct

LICENSE

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this project except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].