Ecosyste.ms: Packages

An open API service providing package, version and dependency metadata of many open source software ecosystems and registries.

Top 2.7% on proxy.golang.org
Top 0.8% dependent packages on proxy.golang.org
Top 1.0% dependent repos on proxy.golang.org
Top 5.5% forks on proxy.golang.org

proxy.golang.org : github.com/joomcode/redispipe

Package redispipe - high throughput Redis connector with implicit pipelining. https://redis.io/topics/pipelining Pipelining improves maximum throughput that redis can serve, and reduces CPU usage both on redis server and on client. Mostly it comes from saving system CPU consumption. But it is not always possible to use pipelining explicitly: usually there are dozens of concurrent goroutines, each sends just one request at a time. To handle usual workload, pipelining has to be implicit. All known Golang redis connectors use connection-per-request working model with a connection pool, and provide only explicit pipelining. This showed far from optimal performance under highly concurrent load. This connector was created as implicitly pipelined from the ground up to achieve maximum performance in a highly concurrent environment. It writes all requests to a single connection to redis, and continuously reads answers from another goroutine. Note that it trades a bit of latency for throughput, and therefore may be not optimal for non-concurrent usage. - fast, - thread-safe: no need to lock around connection, no need to "return to pool", etc, - pipelining is implicit, - transactions supported (but without WATCH), - hook for custom logging, - hook for request timing reporting. - by default, it is not allowed to send blocking calls, because it will block the whole pipeline: `BLPOP`, `BRPOP`, `BRPOPLPUSH`, `BZPOPMIN`, `BZPOPMAX`, `XREAD`, `XREADGROUP`, `SAVE`. However, you could set `ScriptMode: true` option to enable these commands. `ScriptMode: true` also turns default `WritePause` to -1 (meaning it almost disables forced batching). - `WATCH` is also forbidden by default: it is useless and even harmful when concurrent goroutines use the same connection. It is also allowed with `ScriptMode: true`, but you should be sure you use connection only from single goroutine. - `SUBSCRIBE` and `PSUBSCRIBE` commands are forbidden. They switch the connection work mode to a completely different mode of communication, therefore it could not be combined with regular commands. This connector doesn't implement subscribing mode. - root package is empty - common functionality is in redis subpackage - singe connection is in redisconn subpackage - cluster support is in rediscluster subpackage Both redisconn.Connect and rediscluster.NewCluster creates implementations of redis.Sender. redis.Sender provides asynchronous api for sending request/requests/transactions. That api accepts redis.Future interface implementations as an argument and fulfills it asynchronously. Usually you don't need to provide your own redis.Future implementation, but rather use synchronous wrappers. To use convenient synchronous api, one should wrap "sender" with one of wrappers: - redis.Sync{sender} - provides simple synchronouse api, - redis.SyncCtx{sender} - provides same api, but all methods accept context.Context, and methods return immediately if that context is closed, - redis.ChanFutured{sender} - provides api with future through channel closing. Types accepted as command arguments: nil, []byte, string, int (and all other integer types), float64, float32, bool. All arguments are converted to redis bulk strings as usual (ie string and bytes - as is; numbers - in decimal notation). bool converted as "0/1", nil converted to empty string. In difference to other redis packages, no custom types are used for request results. Results are de-serialized into plain go types and are returned as interface{}: IO, connection, and other errors are not returned separately but as result (and has same *errorx.Error underlying type).

Registry - Source - Documentation - JSON
purl: pkg:golang/github.com/joomcode/redispipe
Keywords: go, pipeline, redis
License: MIT
Latest release: about 4 years ago
First release: over 5 years ago
Namespace: github.com/joomcode
Dependent packages: 34
Dependent repositories: 31
Stars: 237 on GitHub
Forks: 15 on GitHub
See more repository details: repos.ecosyste.ms
Last synced: 27 days ago

Top 3.6% on proxy.golang.org
github.com/reddit/baseplate.go v0.9.16
Package baseplate provides a batteries-included starting point for services using Baseplate.go. ...
56 versions - Latest release: 5 months ago - 4 dependent packages - 2 dependent repositories - 84 stars on GitHub
Top 5.4% on proxy.golang.org
github.com/joomcode/redispipe/redisconn/bench v0.0.0-20230614085904-dda13443c062
High-throughput Redis client for Go with implicit pipelining
4 versions - Latest release: 11 months ago - 238 stars on GitHub
Top 5.4% on proxy.golang.org
github.com/joomcode/redispipe/rediscluster/bench v0.0.0-20230614085904-dda13443c062
High-throughput Redis client for Go with implicit pipelining
4 versions - Latest release: 11 months ago - 238 stars on GitHub
Top 9.0% on proxy.golang.org
github.com/S-YOU/spanner-schema-json v0.0.33
31 versions - Latest release: over 1 year ago - 0 stars on GitHub
Top 8.2% on proxy.golang.org
github.com/s-you/spanner-schema-json v0.0.33
32 versions - Latest release: over 1 year ago - 0 stars on GitHub
Top 1.1% on proxy.golang.org
github.com/mediocregopher/radix/v3 v3.8.1
Package radix implements all functionality needed to work with redis and all things related to it...
21 versions - Latest release: almost 2 years ago - 360 dependent packages - 4,241 dependent repositories - 599 stars on GitHub
Top 8.2% on proxy.golang.org
github.com/mediocreGopher/radix/v3 v3.8.1
Redis client for Go
21 versions - Latest release: almost 2 years ago - 599 stars on GitHub
Top 4.8% on proxy.golang.org
gopkg.in/mediocregopher/radix.v3 v3.8.1
Package radix implements all functionality needed to work with redis and all things related to it...
21 versions - Latest release: almost 2 years ago - 609 stars on GitHub
Top 9.0% on proxy.golang.org
github.com/vendelin8/baseplate.go v0.9.7
Package baseplate provides a batteries-included starting point for services using Baseplate.go. ...
34 versions - Latest release: almost 2 years ago - 0 stars on GitHub
Top 8.2% on proxy.golang.org
github.com/emily-meng-1/baseplate.go v0.9.7
34 versions - Latest release: almost 2 years ago
Top 8.2% on proxy.golang.org
github.com/coding-socks/redists v0.5.2
Package redists is a typesafe Go client for RedisTimeSeries. It tries to support multiple Redis c...
8 versions - Latest release: about 2 years ago - 2 stars on GitHub
Top 8.2% on proxy.golang.org
github.com/FranGM/baseplate.go v0.9.5
Reddit's Service Framework in Go
35 versions - Latest release: about 2 years ago - 0 stars on GitHub
Top 8.2% on proxy.golang.org
github.com/frangm/baseplate.go v0.9.5
Reddit's Service Framework in Go
35 versions - Latest release: about 2 years ago - 0 stars on GitHub
Top 8.2% on proxy.golang.org
github.com/konradreiche/baseplate.go v0.9.7
3 versions - Latest release: about 2 years ago
Top 8.2% on proxy.golang.org
github.com/nerg4l/redists v0.4.0
Package redists is a typesafe Go client for RedisTimeSeries. It tries to support multiple Redis c...
5 versions - Latest release: over 2 years ago - 0 stars on GitHub
Top 8.2% on proxy.golang.org
github.com/jessicagreben/baseplate.go v0.9.1
Reddit's Service Framework in Go
28 versions - Latest release: over 2 years ago - 0 stars on GitHub
Top 8.2% on proxy.golang.org
github.com/JessicaGreben/baseplate.go v0.9.1
Reddit's Service Framework in Go
28 versions - Latest release: over 2 years ago - 0 stars on GitHub
Top 8.2% on proxy.golang.org
github.com/dudusmida/radix/v3 v3.8.0
20 versions - Latest release: over 2 years ago
Top 8.2% on proxy.golang.org
github.com/gofish/radix/v3 v3.8.0
Redis client for Go
20 versions - Latest release: over 2 years ago - 0 stars on GitHub
Top 4.1% on proxy.golang.org
github.com/marcoferrer/baseplate.go v0.8.2 removed
21 versions - Latest release: about 3 years ago
Top 8.2% on proxy.golang.org
github.com/aviel-org/radix/v3 v3.7.0
18 versions - Latest release: over 3 years ago
Top 8.2% on proxy.golang.org
github.com/rhomber/radix/v3 v3.6.3
Package radix implements all functionality needed to work with redis and all things related to it...
20 versions - Latest release: over 3 years ago - 0 stars on GitHub
Top 8.2% on proxy.golang.org
github.com/icey129/radix/v3 v3.6.0
17 versions - Latest release: over 3 years ago
Top 8.2% on proxy.golang.org
github.com/huang0518/radix/v3 v3.6.0
17 versions - Latest release: over 3 years ago
Top 8.2% on proxy.golang.org
github.com/gohae/radix/v3 v3.6.0
Redis client for Go
17 versions - Latest release: over 3 years ago - 0 stars on GitHub
Top 8.2% on proxy.golang.org
github.com/larryzhu2018/radix/v3 v3.5.6
Package radix implements all functionality needed to work with redis and all things related to it...
20 versions - Latest release: almost 4 years ago - 0 stars on GitHub
Top 9.0% on proxy.golang.org
github.com/filipecosta90/radix/v3 v3.5.0
Redis client for Go
14 versions - Latest release: about 4 years ago - 0 stars on GitHub
github.com/neffos-contrib/radix/v3 v3.4.3
Package radix implements all functionality needed to work with redis and all things related to it...
14 versions - Latest release: over 4 years ago - 1 dependent repositories - 0 stars on GitHub
Top 8.2% on proxy.golang.org
github.com/sgtmacdiesel/radix/v3 v3.4.2
Redis client for Go
13 versions - Latest release: over 4 years ago - 0 stars on GitHub
Top 8.2% on proxy.golang.org
github.com/anubhavmishra/components-contrib v0.0.0-20191031061423-dfea14cac974
Community driven, reusable components for distributed apps
1 version - Latest release: over 4 years ago - 0 stars on GitHub
Top 4.1% on proxy.golang.org
github.com/anaelorlinski-1A/radix/v3 v3.2.3 removed
6 versions - Latest release: about 5 years ago
Top 8.2% on proxy.golang.org
github.com/anaelorlinski-1a/radix/v3 v3.2.3
6 versions - Latest release: about 5 years ago
Top 8.2% on proxy.golang.org
github.com/suki-fredrik/radix/v3 v3.2.0
4 versions - Latest release: over 5 years ago
Top 8.2% on proxy.golang.org
github.com/vikram-suki/radix/v3 v3.2.0
Package radix implements all functionality needed to work with redis and all things related to it...
4 versions - Latest release: over 5 years ago - 0 stars on GitHub