Contents

nixzhu/flash

A modern, Swift-native HTTP client library with middleware support and built-in retry mechanisms. Flash provides a clean, async/await-based API for making HTTP requests with powerful customization options.

Features

  • πŸš€ Modern Swift: Built with async/await and Sendable support
  • πŸ”§ Middleware System: Intercept and modify requests/responses with custom middleware
  • πŸ”„ Retry Policies: Built-in support for fixed delay and exponential backoff retry strategies
  • πŸ“ Type-Safe: Strongly-typed request builders with compile-time safety
  • 🎯 Lightweight: Minimal dependencies, built on top of URLSession
  • πŸ” Flexible: Support for GET, POST, PUT, PATCH and DELETE requests with JSON body handling

Installation

Swift Package Manager

The Swift Package Manager is a tool for automating the distribution of Swift code and is integrated into the swiftcompiler.

Once your Swift package is set up, add Flash as a dependency to the dependencies value in your Package.swift file or to the package list in Xcode.

dependencies: [
    .package(url: "https://github.com/nixzhu/Flash.git", from: "0.3.0"),
]

Typically, you will want to depend on the Flash target:

.product(name: "Flash", package: "Flash")

Package Metadata

Repository: nixzhu/flash

Default branch: main

README: README.md