Singularity Global Client

Welcome to the Singularity Global Client documentation!

What is the Singularity Global Client?

The core of this software is a local client for the single user to manage images. This means a local (flat file) database orchestrated with a storage folder that is friendly for use on a personal machine or shared resource.

Why was it created?

The simplest use case of the Singularity Global Client is to provide the user a local registry for containers, and to have the registry easily connect with other cloud storage services and hosted Singularity tools. It’s understood that as a researcher or general developer you have many options for storage, and sometimes your choices are determined by what happens to be provided to you. Singularity, by way of needing to be installed on legacy systems, could never (realistically) implement every storage and endpoint connection that could be wanted. If it did, it would be very challenging to do without using modern libraries that are available on newer operating systems. Singularity Global Client intends to empower Singularity users to interact with containers across these storage types. It exposes a common interface to to connect to and interact with containers both from the command and from within python (for developers).

Importantly, the Singularity Global Client does not have any dependency on Docker (the current deployment strategies for a Registry or Singularity Hub) and there is no need for extensive setup beyond installation and a single file (sqlite3) database, or you can opt to install without the database entirely to just push and pull images.

Getting Started

Getting Help

This is an open source project. Please contribute to the package, or post feedback and questions as issues. You’ll notice a little eliipsis () next to each header section. If you click this, you can open an issue relevant to the section, grab a permalink, or suggest a change. You can also talk to us directly on Gitter.

Gitter chat



This code is licensed under the MPL 2.0 LICENSE. This means that you can use and change the software and code, but your changes must also be open source.