# sparkle-project/sparkle

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/sparkle-project-sparkle).**

8,600 stars · 1,095 forks · Objective-C · other

## Links

- GitHub: https://github.com/sparkle-project/Sparkle
- Homepage: https://sparkle-project.org
- awesome-repositories: https://awesome-repositories.com/repository/sparkle-project-sparkle.md

## Topics

`framework` `macos` `software-update` `update`

## Description

Sparkle is a software update framework for macOS applications. It provides a system for delivering automatic updates using signed archives and RSS-based feeds to notify clients of new software versions.

The framework ensures software integrity and authenticity through public-key cryptography, requiring digital signatures for both update archives and release feeds. It includes mechanisms for signing key rotation to maintain the security chain if a private key is lost.

To optimize delivery, the project includes tools for generating binary delta updates that ship only the byte-level differences between versions. The system handles updates through background installation processes and provides options for customizing the visual branding of the update interface.

## Tags

### Operating Systems & Systems Programming

- [macOS Application Update Delivery](https://awesome-repositories.com/f/operating-systems-systems-programming/macos-application-update-delivery.md) — Provides a comprehensive framework for delivering automatic updates to macOS applications.
- [Background Installation Processes](https://awesome-repositories.com/f/operating-systems-systems-programming/background-installation-processes.md) — Downloads and applies software updates in a background process to avoid interrupting the user.

### Business & Productivity Software

- [Delta Synchronization](https://awesome-repositories.com/f/business-productivity-software/client-side-data-synchronization/delta-synchronization.md) — Reduces download sizes by shipping only the binary differences between software versions.

### Content Management & Publishing

- [Software Update Feeds](https://awesome-repositories.com/f/content-management-publishing/content-aggregation-curation/syndication-feed-generators/software-update-feeds.md) — Provides RSS-based appcast files to notify users of available software versions and release notes. ([source](http://sparkle-project.org/documentation))
- [RSS Feed Generation](https://awesome-repositories.com/f/content-management-publishing/rss-feed-generation.md) — Generates structured XML feeds to notify clients of new software versions and release notes.
- [Syndication Feed Generators](https://awesome-repositories.com/f/content-management-publishing/content-aggregation-curation/syndication-feed-generators.md) — Creates and manages RSS-based update feeds to notify clients of new software versions.

### Development Tools & Productivity

- [Differential Update Packages](https://awesome-repositories.com/f/development-tools-productivity/package-installers/software-update-managers/differential-update-packages.md) — Creates binary delta patches containing only changed files to minimize download sizes. ([source](http://sparkle-project.org))
- [Software Update Managers](https://awesome-repositories.com/f/development-tools-productivity/software-update-managers.md) — Ensures update integrity and authenticity through public key cryptography and signed feeds.

### DevOps & Infrastructure

- [Automated Update Managers](https://awesome-repositories.com/f/devops-infrastructure/automated-update-managers.md) — Installs application updates automatically in the background to keep software current. ([source](http://sparkle-project.org))
- [Binary Delta Generators](https://awesome-repositories.com/f/devops-infrastructure/deployment-management/installation-package-management/binary-and-source-installation/remote-binary-updaters/binary-delta-generators.md) — Ships a utility for generating incremental updates that contain only the differences between releases.

### Networking & Communication

- [Delta Transfer Protocols](https://awesome-repositories.com/f/networking-communication/delta-transfer-protocols.md) — Implements binary diff transfers to minimize download sizes for software updates.

### Security & Cryptography

- [Code Signing](https://awesome-repositories.com/f/security-cryptography/code-signing.md) — Ensures downloaded updates come from a trusted source using public-key code signing. ([source](http://sparkle-project.org/documentation/))
- [Signature Verification Tools](https://awesome-repositories.com/f/security-cryptography/signature-verification-tools.md) — Validates the authenticity of update archives and feeds using cryptographic signatures.
- [Software Integrity Verification](https://awesome-repositories.com/f/security-cryptography/software-integrity-verification.md) — Checks update archives and feeds using digital signatures to prevent tampered software installation. ([source](http://sparkle-project.org))
- [Update Feed Verifications](https://awesome-repositories.com/f/security-cryptography/update-feed-verifications.md) — Sparkle validates digital signatures on release notes and update feeds to prevent redirection to malicious servers. ([source](http://sparkle-project.org/documentation/))
- [Signing Key Rotation](https://awesome-repositories.com/f/security-cryptography/code-signing/signing-key-rotation.md) — Supports replacing security certificates via signed updates to maintain the update chain. ([source](http://sparkle-project.org/documentation))
- [Update Certificate Rotation](https://awesome-repositories.com/f/security-cryptography/key-management/automated-key-rotations/update-certificate-rotation.md) — Provides a mechanism to rotate signing keys to maintain the security chain if a private key is lost.
- [Update Archive Signers](https://awesome-repositories.com/f/security-cryptography/update-archive-signers.md) — Implements a security system for signing update archives and feeds to verify software origin.

### System Administration & Monitoring

- [Software Version Managers](https://awesome-repositories.com/f/system-administration-monitoring/software-version-managers.md) — Manages the application release lifecycle and notifies users of new versions via RSS feeds.

### Software Engineering & Architecture

- [Incremental Update Chains](https://awesome-repositories.com/f/software-engineering-architecture/incremental-update-chains.md) — Maintains a sequence of signed releases allowing clients to transition through versions via small patches.
