Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/Kitura/Kitura-redis
- Owner: Kitura
- License: apache-2.0
- Created: 2016-02-05T22:00:32.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2023-08-03T20:56:44.000Z (over 1 year ago)
- Last Synced: 2024-05-13T14:59:36.606Z (6 months ago)
- Topics: client, database, redis, swift, swift-library
- Language: Swift
- Homepage:
- Size: 715 KB
- Stars: 94
- Watchers: 34
- Forks: 25
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# 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 SwiftRedislet 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).