Skip to content

Introduction

SwiftSonic is a native Swift client for the Subsonic and OpenSubsonic APIs.

It implements the official specifications, exposes a strongly-typed async/await surface, and ships zero third-party dependencies. The current release is 0.6.1, distributed under the MIT license.

  • A pure Swift client for any Subsonic-compatible server.
  • Strict spec compliance — nothing server-specific. If a behaviour is not in the Subsonic or OpenSubsonic specification, it does not live in SwiftSonic.
  • Built on URLSession only. No Alamofire, no swift-nio, no transitive HTTP stack.
  • Sendable types end-to-end, ready for Swift 6 strict concurrency.

SwiftSonic is unopinionated and intentionally narrow:

  • No caching layer. You decide where to persist responses.
  • No audio playback. Pair it with AVFoundation or any player you like.
  • No UI. SwiftUI/UIKit is out of scope.
  • No server-specific extensions. Navidrome, Airsonic, Gonic and friends only get first-class support for the parts they implement from the spec.

This split keeps the library small, auditable, and easy to integrate into any architecture.

Developers building Swift apps that talk to a self-hosted music server: clients, sync tools, scripts, server probes, automation. If you need a dependency-free Subsonic client that compiles cleanly under Swift 6, this is for you.