Store service

When multiple users share a computer they each have their own Zero Install configuration and implementation cache. To conserve disk space and prevent unnecessary duplicate downloads of applications used by more than one user, a shared cache can be employed.

The shared cache is managed by the Zero Install Store Service. This service ensures that no user can, intentionally or unintentionally, manipulate the contents of the cache. Each user adds her downloaded implementations to the shared cache but other users will only retrieve them if they request the exact same version (with the same cryptographic hash). Using a shared cache has no influence on the desktop integration, so each user still has her individual list of applications.

The Zero Install Store Service is installed by default when Zero Install is deployed for all users (machine-wide). Zero Install automatically uses the service when it is available (unless in portable mode) and falls back to the user cache if the service is unavailable.

Locations

The service uses C:\ProgramData\0install.net\implementations (see Storage locations) for storing implementations by default.
A custom location can be specified in the file C:\ProgramData\0install.net\injector\implementation-dirs. When using a custom location make sure it is only writeable by SYSTEM and Administrators and readable by Everyone.

Technical details

Zero Install communicates with the service using named pipes. The user process downloads an archive to a temporary directory and then passes its file path to the service with a request for extraction. The service extracts the archive, verifies the manifest digest and adds the implementation to the cache. During the entire process the service reports the progress back to the user process.

Named pipes allow the service to impersonate the calling user. The archive is read and extracted using the privileges of the calling user but verified and added to the cache using the privileges of the service.

The service records write access to the cache as well as any potential problems in the Windows Event Log.

The Zero Install Store Service provides functionality for Windows roughly equivalent to the store helper on Linux.