cURL support for Perfect
This project provides a Swift wrapper around the libcurl.
This package builds with Swift Package Manager and is part of the Perfect project. It was written to be stand-alone and so does not require PerfectLib or any other components.
Ensure you have installed and activated the latest Swift 3.0 tool chain.
Example usage:
func testCURLAsync() {
let url = "https://www.treefrog.ca"
let curl = CURL(url: url)
// set an option
let _ = curl.setOption(CURLOPT_SSL_VERIFYPEER, int: 0)
// check the url
XCTAssert(curl.url == url)
// perform the request
curl.perform {
code, header, body in
// check the result code, http response code, header and body bytes
XCTAssert(0 == code, "Request error code \(code)")
let response = curl.responseCode
XCTAssert(response == 200, "\(response)")
XCTAssert(header.count > 0)
XCTAssert(body.count > 0)
}
}
Ensure that you have installed libcurl.
sudo apt-get install libcurl-dev
Add this project as a dependency in your Package.swift file.
.Package(url: "https://github.com/PerfectlySoft/Perfect-CURL.git", versions: Version(0,0,0)..<Version(10,0,0))
We have finished refactoring Perfect to support Swift Package Manager. The Perfect project has been split up into the following repositories:
- Perfect - This repository contains the core PerfectLib and will continue to be the main landing point for the project.
- PerfectTemplate - A simple starter project which compiles with SPM into a stand-alone executable HTTP server. This repository is ideal for starting on your own Perfect based project.
- PerfectDocs - Contains all API reference related material.
- PerfectExamples - All the Perfect example projects and documentation.
- PerfectEverything - This umbrella repository allows one to pull in all the related Perfect modules in one go, including the servers, examples, database connectors and documentation. This is a great place to start for people wishing to get up to speed with Perfect.
- PerfectServer - Contains the PerfectServer variants, including the stand-alone HTTP and FastCGI servers. Those wishing to do a manual deployment should clone and build from this repository.
- Perfect-Redis - Redis database connector.
- Perfect-SQLite - SQLite3 database connector.
- Perfect-PostgreSQL - PostgreSQL database connector.
- Perfect-MySQL - MySQL database connector.
- Perfect-MongoDB - MongoDB database connector.
- Perfect-FastCGI-Apache2.4 - Apache 2.4 FastCGI module; required for the Perfect FastCGI server variant.
The database connectors are all stand-alone and can be used outside of the Perfect framework and server.
For more information on the Perfect project, please visit perfect.org.