Nathan Harris b8c19488a7 Refactor RESPTranslator to mutate the passed ByteBuffer directly.
Motivation:

During proposal review, it was pointed out that the code with a position index was redundant and error prone over relying on `ByteBuffer`'s `readerIndex`.

Modifications:

Refactored `RESPTranslator` to rely on `ByteBuffer.readerIndex` for position of current parsing cursor,
and eliminated `ParsingResult` enum to instead return `RESPValue?`.

The implementation for writing out `RESPValue` has been expanded to `RESPValueConvertible` and moved to an extension of `ByteBuffer`.

Result:

Parsing `RESPValue` into and out of `ByteBuffer` should be less error-prone and more straight forward.

This contributes to issues #47 and #55
2019-07-02 23:19:10 -07:00
2019-06-06 17:17:29 -07:00
2019-06-06 09:55:08 -07:00
2019-06-05 11:39:06 -07:00
2019-06-06 09:55:08 -07:00
2019-06-06 09:55:08 -07:00
2019-06-06 09:55:08 -07:00
2019-06-06 09:55:08 -07:00
2019-06-06 15:10:59 -07:00

The GitHub repository is a read-only mirror of the GitLab repository. For issues and merge requests, please visit GitLab.

License Build Swift Redis

Swift Redis NIO Client

A non-blocking Swift client for Redis built on top of SwiftNIO.

This package defines everything you need to work with Redis through the Redis Seralization Protocol (RESP).

RedisNIO is part of the Swift on Server Working Group ecosystem.

Proposal Pitch Discussion Review Vote
SSWG-0004 2019-01-07 2019-04-01 TBD TBD

📦 Installation

To install RedisNIO, just add the package as a dependency in your Package.swift

dependencies: [
    .package(url: "https://github.com/Mordil/swift-redis-nio-client.git", from: "1.0.0-alpha.1")
]

and run the following command: swift package resolve

Getting Started

RedisNIO is ready to use right after installation.

import RedisNIO

let connection = Redis.makeConnection(
    to: try .init(ipAddress: "127.0.0.1", port: RedisConnection.defaultPort),
    password: "my_pass"
).wait()

let result = try connection.set("my_key", to: "some value")
    .flatMap { return connection.get("my_key" }
    .wait()

print(result) // Optional("some value")

📕 Documentation

API Documentation is generated every time a new release is published.

The latest version's docs are always available at https://mordil.gitlab.io/swift-redis-nio-client

🚧 Contributing

Check out CONTRIBUTING.md for more information on how to help with RedisNIO.

It is highly recommended to use Docker to install Redis locally.

docker run -d -p 6379:6379 --name redis redis:5

Otherwise, install Redis directly on your machine from Redis.io.

S
Description
Non-blocking, event-driven Swift client for Redis.
Readme
1.9 MiB
Languages
Swift 99.7%
Shell 0.3%