Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/Kitura/Kitura-redis

Swift Redis library
https://github.com/Kitura/Kitura-redis

client database redis swift swift-library

Last synced: 3 days ago
JSON representation

Swift Redis library

Awesome Lists containing this project

README

        



Kitura



APIDoc


Build Status - Master

macOS
Linux
Apache 2

Slack Status

# KituraRedis

KituraRedis is a pure Swift client for interacting with a Redis database.

## Swift version
The latest version of Kitura-redis requires **Swift 4.0.3 or later**. You can download this version of the Swift binaries by following this [link](https://swift.org/download/). Compatibility with other Swift versions is not guaranteed.

## Usage

#### Add dependencies

Add the `Kitura-redis` package to the dependencies within your application’s `Package.swift` file. Substitute `"x.x.x"` with the latest `Kitura-redis` [release](https://github.com/Kitura/Kitura-redis/releases).

```swift
.package(url: "https://github.com/Kitura/Kitura-redis.git", from: "x.x.x")
```

Add `SwiftRedis` to your target's dependencies:

```swift
.target(name: "example", dependencies: ["SwiftRedis"]),
```

#### Import package

```swift
import SwiftRedis
```

## Redis installation

To test Kitura-redis locally you need to install [Redis](https://redis.io).

### macOS
```
brew install redis
```

To start redis as a background service and have the service restarted at login:
```
brew services start redis
```

Or, if you don't want redis running as a background service:
```
redis-server /usr/local/etc/redis.conf
```

## Example

This example shows you how to connect and make calls to Redis from Swift.

#### Create simple Swift executable

Create a directory for this project, change into it and then initialize the project:
```
$ mkdir exampleRedis && cd exampleRedis
$ swift package init --type executable
```

Add Kitura-redis as a dependency as described above in "Add dependencies".

Now, edit your `main.swift` file to contain:

```swift
import Foundation
import SwiftRedis

let redis = Redis()

redis.connect(host: "localhost", port: 6379) { (redisError: NSError?) in
if let error = redisError {
print(error)
}
else {
print("Connected to Redis")
// Set a key
redis.set("Redis", value: "on Swift") { (result: Bool, redisError: NSError?) in
if let error = redisError {
print(error)
}
// Get the same key
redis.get("Redis") { (string: RedisString?, redisError: NSError?) in
if let error = redisError {
print(error)
}
else if let string = string?.asString {
print("Redis \(string)")
}
}
}
}
}
```

Next, build the program and run it (either within Xcode or on the command line):
```
$ swift build
$ .build/debug/redisExample
```

You should see:
```
$ Connected to Redis
$ Redis on Swift
```
This shows that we've connected to Redis, set a string value for a key and then successfully retrieved the value for that key.

## Contributing

Contributions to the Kitura-redis project are welcome. You will want to be able to test your changes locally before submitting a pull request.

The tests require a Redis server to be accessible locally on the default port (6379). If you do not wish to install Redis permanently, you can use Docker to run a temporary instance locally as follows:
```
docker run -d -p 6379:6379 redis:alpine redis-server --requirepass password123
```
The password specified above must match the one defined in `Tests/SwiftRedis/password.txt`. Then you can run the tests as normal, either via Xcode or with:
```
swift test
```

## API Documentation
For more information visit our [API reference](https://kitura.github.io/Kitura-redis/index.html).

## Community

We love to talk server-side Swift, and Kitura. Join our [Slack](http://swift-at-ibm-slack.mybluemix.net/) to meet the team!

## License
This library is licensed under Apache 2.0. Full license text is available in [LICENSE](https://github.com/Kitura/Kitura-redis/blob/master/LICENSE.txt).