Sparkle not only lets you know that an update exists for the program in question, but can also download the new version and install it without the user having to do anything at all. Once the process is done, Sparkle restarts the program. The user can decide if they want to install the new version or not. Sparkle can also display the release notes for the latest update.
Sparkle integrates with your application perfectly (and anonymously) in just five steps. It can extract the file update in ZIP, DMG, TAR, TBZ, and TGZ format.