# bustoutsolutions/siesta

The civilized way to write REST API clients for iOS / macOS

Repository: https://github.com/bustoutsolutions/siesta
Canonical: https://ross.abutalabs.com/products/siesta
Homepage: https://bustoutsolutions.github.io/siesta/
Language: Swift
License: MIT
License Family: permissive
Topics: swift, ios, macos, networking, rest, caching, observer, reactive
Last push: 2023-01-27T00:52:31+00:00

## Health v2 (maintenance only)
Score: 23/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 0, release rhythm 8, longevity 100
- inputs: {"age_days": 4092, "days_push": 1315, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 2181, forks 154 (observed 2026-08-28T04:06:23.295158+00:00)

## What it is
Siesta is a Swift library for building REST API clients on iOS, macOS, and tvOS. It provides an app-wide, observable, resource-centric cache of RESTful resource state, handling loading indicators, error handling, retries, and request deduplication.

## Use cases
- consume a REST API from an iOS app without ad hoc networking code
- share cached API resource state across multiple view controllers
- show loading and error states for network requests with automatic retry
- avoid redundant requests and deserialization for the same resource
- observe remote resource changes reactively in Swift or Objective-C apps

## When to choose
- building an iOS/macOS/tvOS app that talks to a RESTful API
- you want observable, cached resource models instead of request-centric networking
- you need built-in loading/error state management and request deduplication

## When to avoid
- your backend is not RESTful (e.g., GraphQL or gRPC)
- you need a cross-platform (non-Apple) networking solution
- the project needs actively evolving features; the library is in maintenance mode

## Facets
- artifact type: library
- maturity: maintenance
- function: http-client, caching, state-management, middleware
- domain: mobile-development, web-development, apis, apple-ecosystem
- platform: cross-platform
- tags: rest-client, reactive, observable-resources, swift, objective-c-support, tvos, ios, macos

## Member repositories
- bustoutsolutions/siesta (main) score 23

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:06:23.295158+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T02:48:41.334509+00:00, confidence not recorded.
  - readme: https://github.com/bustoutsolutions/siesta (fetched 2026-08-28T04:06:23.295158+00:00, sha 24b731193103)
  - homepage: https://bustoutsolutions.github.io/siesta/ (fetched 2026-08-29T10:28:28.167665+00:00, sha 525aee2d2184)
- Data as of 2026-08-30T08:39:29.467469+00:00.
