Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/johnlui/Pitaya
🏇 A Swift HTTP / HTTPS networking library just incidentally execute on machines
https://github.com/johnlui/Pitaya
http https ios network ssl-pinning swift
Last synced: 3 months ago
JSON representation
🏇 A Swift HTTP / HTTPS networking library just incidentally execute on machines
- Host: GitHub
- URL: https://github.com/johnlui/Pitaya
- Owner: johnlui
- License: mit
- Created: 2015-05-14T12:50:57.000Z (over 9 years ago)
- Default Branch: swift5
- Last Pushed: 2019-11-27T03:10:45.000Z (almost 5 years ago)
- Last Synced: 2024-06-19T03:11:46.788Z (5 months ago)
- Topics: http, https, ios, network, ssl-pinning, swift
- Language: Swift
- Homepage:
- Size: 4.1 MB
- Stars: 845
- Watchers: 39
- Forks: 100
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-ios - Pitaya - A Swift HTTP / HTTPS networking library just incidentally execute on machines. (Networking / Video)
- awesome-swift - Pitaya - HTTP / HTTPS networking library just incidentally execute on machines. (Libs / Network)
- awesome-swift - Pitaya - HTTP / HTTPS networking library just incidentally execute on machines. (Libs / Network)
- awesome-ios-star - Pitaya - A Swift HTTP / HTTPS networking library just incidentally execute on machines. (Networking / Video)
- fucking-awesome-swift - Pitaya - HTTP / HTTPS networking library just incidentally execute on machines. (Libs / Network)
- awesome-swift-cn - Pitaya - A Swift HTTP / HTTPS networking library just incidentally execute on machines. (Libs / Network)
- Awesome-Swift-Packages - Pitaya - A Swift HTTP / HTTPS networking library just incidentally execute on machines (Network)
- awesome-swift - Pitaya - A Swift HTTP / HTTPS networking library just incidentally execute on machines ` 📝 2 years ago ` (Network [🔝](#readme))
README
Thus, programs must be written for people to read, and only incidentally for machines to execute.
Harold Abelson, "Structure and Interpretation of Computer Programs" ( S.I.C.P )
Pitaya is a Swift HTTP / HTTPS networking library for people. Inspired by [Alamofire](https://github.com/Alamofire/Alamofire) and [JustHTTP](https://github.com/JustHTTP/Just).
### [中文简介](#中文介绍)
## Example
### Simple
```swift
Pita.build(HTTPMethod: .GET, url: "https://httpbin.org/get?hello=Hello%20Pitaya!")
.responseJSON { (json, response) -> Void in
print(json["args"]["hello"].stringValue) // get "Hello Pitaya!"
}
```### All examples
![All Examples](https://github.com/johnlui/Pitaya/blob/swift3/assets/[email protected])
## Documentation
### [Read the documentation](https://github.com/johnlui/Pitaya/wiki)
### [中文文档](https://github.com/johnlui/Pitaya/wiki/%E4%B8%AD%E6%96%87%E6%96%87%E6%A1%A3)## Features
- [x] Support Swift Package Manager
- [x] Elegant APIs for people
- [x] Support HTTP Basic Authorization
- [x] Support setting SSL pinning
- [x] Support setting HTTP raw body (include [JSON body](https://github.com/johnlui/Pitaya/wiki#http-raw-body))
- [x] Asynchronous & Queue
- [x] Upload files fast
- [x] Internal fully JSON support with [JSONNeverDie](https://github.com/johnlui/JSONNeverDie)
- [x] Support setting custom HTTP headers
- [x] almost 100% tested## Requirements
* iOS 7.0+
* Xcode 10.2 (Swift 5) (v4.x) in the default swift5 branch.
* Xcode 9 (Swift 4) (v3.x) in swift4 branch.
* Xcode 8 (Swift 3) (v2.x) in swift3 branch.
* Xcode 7 (Swift 2) (v1.x) in master branch.
* Xcode 6.4 (Swift 1.2) before [v0.2.3](https://github.com/johnlui/Pitaya/releases/tag/v0.2.3)## Installation
### Swift Package Manager
You can use [The Swift Package Manager](https://swift.org/package-manager) to install `Pitaya` by adding the proper description to your `Package.swift` file:
```swift
import PackageDescriptionlet package = Package(
name: "YOUR_PROJECT_NAME",
targets: [],
dependencies: [
.Package(url: "https://github.com/johnlui/Pitaya.git", versions: "1.3.4" ..< Version.max)
]
)
```Note that the [Swift Package Manager](https://swift.org/package-manager) is still in early design and development, for more infomation checkout it's [GitHub Page](https://github.com/apple/swift-package-manager)
### Carthage
[Carthage](https://github.com/Carthage/Carthage) is a decentralized dependency manager that automates the process of adding frameworks to your Cocoa application.
You can install Carthage with Homebrew using the following command:
```bash
$ brew update
$ brew install carthage
```To integrate Pitaya into your Xcode project using Carthage, specify it in your Cartfile:
```json
github "JohnLui/Pitaya"
```Then fetch and build Pitaya:
```bash
carthage update
```At last, add it to "Embedded Binaries" in the general panel use the "Add Other..." button. The Pitaya.framework binary file is lying in `./Carthage/Build/iOS` directory.
### Manually
```bash
git submodule add https://github.com/johnlui/Pitaya.git
open .
```
then drag Pitaya.xcodeproj into your Project, that's it!If you want to run your project on devices with Pitaya, just go to PROJECT->TARGETS->[your project name]->General->Embedded Binaries, click +, select Pitaya.frameWork and click "Add".
### Source File
Clone all files in the `Source` directory into your project.
## Contribution
You are welcome to fork and submit pull requests.
## License
Pitaya is open-sourced software licensed under the MIT license.
# 中文介绍
> Thus, programs must be written for people to read, and only incidentally for machines to execute.(代码是写给人看的,只是恰好能运行。)
>
> Harold Abelson, "[Structure and Interpretation of Computer Programs](https://mitpress.mit.edu/sicp/front/node3.html)" ( S.I.C.P )Pitaya(火龙果) 是一个写给人看的纯 Swift 写成的 HTTP / HTTPS 网络库。从 [Alamofire](https://github.com/Alamofire/Alamofire) 和 [JustHTTP](https://github.com/JustHTTP/Just) 偷了一些创意和代码。
## 使用示例
### 基本用法
```swift
Pita.build(HTTPMethod: .GET, url: "https://httpbin.org/get?hello=Hello%20Pitaya!")
.responseJSON { (json, response) -> Void in
print(json["args"]["hello"].stringValue) // get "Hello Pitaya!"
}
```### 所有用法
![All Examples](https://github.com/johnlui/Pitaya/blob/swift3/assets/[email protected])
### [中文文档](https://github.com/johnlui/Pitaya/wiki/%E4%B8%AD%E6%96%87%E6%96%87%E6%A1%A3)
## 功能
- [x] 支持 Swift Package Manager
- [x] 写给人用的优雅 API
- [x] 支持 HTTP Basic Authorization
- [x] 支持设置 SSL 钢钉,防“中间人攻击”
- [x] 支持设置 HTTP raw body (支持 [JSON body](https://github.com/johnlui/Pitaya/wiki#http-raw-body))
- [x] 异步、队列
- [x] 快速文件上传
- [x] 内置 [JSONNeverDie](https://github.com/johnlui/JSONNeverDie),完全支持 JSON 数据
- [x] 支持设定 HTTP headers
- [x] 几乎 100% 测试率## 环境要求
* iOS 7.0+
* Xcode 10.2 (Swift 5) v4.x 版,位于 swift5 分支(当前默认版本)
* Xcode 9 (Swift 4) v3.x 版,位于 swift4 分支
* Xcode 8 (Swift 3) v2.x 版,位于 swift3 分支
* Xcode 7 (Swift 2) v1.x 版,位于 master 分支
* Xcode 6.4 (Swift 1.2) 版: [v0.2.3](https://github.com/johnlui/Pitaya/releases/tag/v0.2.3)## 安装
### Swift Package Manager
[The Swift Package Manager](https://swift.org/package-manager) 是苹果伴随 Swift 开源而推出的 Swift 语言包管理工具。
编辑你项目的 `Package.swift`:
```swift
import PackageDescriptionlet package = Package(
name: "YOUR_PROJECT_NAME",
targets: [],
dependencies: [
.Package(url: "https://github.com/johnlui/Pitaya.git", versions: "1.3.4" ..< Version.max)
]
)
```[Swift Package Manager](https://swift.org/package-manager) 依然在开发中,功能不太稳定,建议关注它的 [GitHub Page](https://github.com/apple/swift-package-manager)。
### Carthage
[Carthage](https://github.com/Carthage/Carthage) 是一个去中心化的 Cocoa 应用程序自动依赖添加工具。
使用以下命令安装 Carthage
```bash
$ brew update
$ brew install carthage
```安装好 Carthage 后,将下列内容加入你项目的 Cartfile:
```json
github "JohnLui/Pitaya"
```自动下载、编译 Pitaya:
```bash
carthage update
```最后,在 general panel 里 的 "Embedded Binaries" 项下点击 "Add Other..." 按钮,Pitaya.framework 已经躺在了 `./Carthage/Build/iOS` 目录里。
> 这种方法目前还不支持 BITCODE,如果需要支持,请直接将 Pitaya.xcodeproj 拖入你的工程。### 手动安装
```bash
git clone https://github.com/johnlui/Pitaya.git
open Pitaya
```
在打开的 Finder 窗口中把 Pitaya.xcodeproj 拖到 Xcode 你的文件树里。真机调试还需要额外的一步:打开 PROJECT->TARGETS->[your project name]->General,找到 Embedded Binaries, 点击 +, 选中 Pitaya.framework,点击“Add”即可。
### 源代码安装
把 `Source` 文件夹下的文件拖进你的文件树里即可。
## 参与开源
欢迎提交 issue 和 PR,大门永远向所有人敞开。
## 开源协议
本项目遵循 MIT 协议开源,具体请查看根目录下的 LICENSE 文件。