Skip to content

Commit 498a732

Browse files
committed
Update pitch doc to include references to pipelines and include links
1 parent 44633a2 commit 498a732

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

README.md

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,24 +17,26 @@ A barebones implementation is available at [mordil/nio-redis](https://github.com
1717

1818
The following are already implemented, with unit tests:
1919

20-
- Connection and Authorization
21-
- Raw commands
22-
- Convienence methods for:
20+
- [Connection and Authorization](https://github.com/Mordil/nio-redis/blob/master/Sources/NIORedis/NIORedis.swift#L35)
21+
- [Raw commands](https://github.com/Mordil/nio-redis/blob/master/Sources/NIORedis/NIORedisConnection.swift#L33)
22+
- [Convienence methods for:](https://github.com/Mordil/nio-redis/blob/master/Sources/NIORedis/Commands/BasicCommands.swift#L4)
2323
- GET
2424
- SET
2525
- AUTH
2626
- DEL
2727
- SELECT
2828
- EXPIRE
2929
- NIO-wrapped abstractions for
30-
- Client
31-
- Connection
30+
- [Client](https://github.com/Mordil/nio-redis/blob/master/Sources/Redis/Redis.swift)
31+
- [Connection](https://github.com/Mordil/nio-redis/blob/master/Sources/Redis/RedisConnection.swift)
32+
- [Pipelines](https://github.com/Mordil/nio-redis/blob/master/Sources/Redis/RedisPipeline.swift)
3233
- GET command
3334
- Unit tests for
3435
- Response decoding to native Swift
3536
- Message encoding to RESP
3637
- Connections
3738
- implemented commands
39+
- pipelines
3840

3941
This package is a re-implementation of [vapor/redis](https://github.com/vapor/redis) stripped down to only build on SwiftNIO to be framework agnostic.
4042

@@ -105,9 +107,13 @@ A `ByteToMessageDecoder` and `MessageToByteEncoder` are used for the conversion
105107
### NIORedisConnection
106108
This class uses a `ChannelInboundHandler` that handles the actual process of sending and receiving commands.
107109

108-
While it does handle a "pipeline" queue of messages, so as to not be blocking, it is _not_ the same as [Redis' Pipelining](https://redis.io/topics/pipelining).
110+
While it does handle a queue of messages, so as to not be blocking, pipelining is implemented with `NIORedisPipeline`.
109111

110-
That is a feature for future development.
112+
### NIORedisPipeline
113+
A `NIORedisPipeline` is a quick abstraction that buffers an array of complete messages as `RedisData`, and executing them in sequence after a
114+
user has invoked `execute()`.
115+
116+
It returns an `EventLoopFuture<[RedisData]>` with the results of all commands executed - unless one errors.
111117

112118
## Redis
113119

0 commit comments

Comments
 (0)