SwiftyCouchDB is a wrapper for CouchDB
- macOS (linux soon come, when Alamofire is compatible, more info here)
- Xcode 9.0+
- Swift 4.0
NOTE: Currently we only support Swift Package Manager, as we are more of a server side framework, but if you wish us to move to Cocoapods please let us know
The Swift Package Manager is a tool for automating the distribution of Swift code and is integrated into the swift compiler. It is in early development, but Alamofire does support its use on supported platforms.
Once you have your Swift package set up, adding Alamofire as a dependency is as easy as adding it to the dependencies value of your Package.swift.
dependencies: [
.package(url: "https://github.com/Off-Piste/SwiftyCouchDB.git", from: "1.0.0")
]NOTE: Due to the all objects subclassing
DBObjectyou will need to overrideinit(from decoder: Decoder) throwsandfunc encode(to encoder: Encoder) throws, for more info see article on how to use Codable
NOTE: If the error has a
._codeof 500, this usually means that CouchDB is not running
import SwiftyCouchDB
// This will only throw an error if the database name is invalid
let database = try! Database("users")
// Sends a GET request to the server to get its basic infomation
database.info { (info, error) in
// ...
}
// Sends a HEAD request to server to check if the database exists
database.exists { (exists, error) in
// ...
}
// Sends a PUT request to create the database
database.create { (database, error) in
// ...
}
// Sends a DELETE request to delete the database
database.delete { (success, error) in
// ...
}Calling Database(_:) currently passes DBConfiguration.default when being called, this is set to 127.0.0.1:5984 which is the default CouchDB connection.
Changing .default is easy:
DBConfiguration.setDefault(DBConfiguration(host: "sever_url.com", port: nil, secure: false))Of if one database is at a custom location, you can set each Database with a separate configuration:
let config = DBConfiguration(host: "sever_url.com", port: nil, secure: false)
let database = try! Database("database", configuration: config)Or last of all, if you pass a URLConvertible through we can infer the details
let database = try! Database("http://server_url.com/database")
print(database.config, database.name) // DBConfiguration{host: "sever_url.com", secure: false}, databaseSwiftyCouchDB is released under the MIT license.