Zero Install .NET API  2.18.0
Namespaces | Classes | Enumerations
ZeroInstall.Model Namespace Reference

Zero Install data model for the feed format. NuGet: ZeroInstall.Model More...

Namespaces

namespace  Capabilities
 Extends the feed format with structures for describing application capabilities.
 
namespace  Design
 TypeConverters for value types defined in this assembly.
 
namespace  Preferences
 Structures for user-specified preferences and overrides for interfaces, feeds and implementations.
 
namespace  Selection
 Structures for representing Solver results.
 

Classes

struct  Architecture
 Describes a combination of an operating system and a CPU architecture. More...
 
class  ArchitectureExtensions
 Contains extension methods for Architecture, OS and Cpu. More...
 
class  Archive
 Retrieves an implementation by downloading and extracting an archive. More...
 
class  Arg
 A single command-line arguments to be passed to an executable. More...
 
class  ArgBase
 Common base class for Arg and ForEachArgs. More...
 
class  Binding
 Bindings specify how the chosen implementation is made known to the running program. More...
 
class  Catalog
 Contains a list of Feeds, reduced to only contain information relevant for overview lists. More...
 
class  Category
 An application category (e.g. Game or Office). Used for organizing application menus. More...
 
class  Command
 A command says how to run an Implementation as a program. More...
 
class  Constraint
 Restricts the set of versions from which the injector may choose an Implementation. More...
 
class  CopyFromStep
 Copies files or directories from another implementation specified elsewhere in the same feed. More...
 
class  Dependency
 A reference to an interface that is required as dependency. More...
 
class  DependencyContainerExtensions
 Provides extension methods for IDependencyContainer. More...
 
class  DownloadRetrievalMethod
 Represents a retrieval method that downloads data from the net. More...
 
class  Element
 Abstract base class for ImplementationBase and Group. Contains those parameters that can be transferred from a Group to an Implementation. More...
 
class  EntryPoint
 Associates a Command with a user-friendly name and description. More...
 
class  EnvironmentBinding
 Make a chosen Implementation available by setting environment variables. More...
 
class  ExecutableInBinding
 Make a chosen Implementation available as an executable at runtime. More...
 
class  ExecutableInPath
 Make a chosen Implementation available as an executable in the search PATH. More...
 
class  ExecutableInVar
 Make a chosen Implementation available as an executable path in an environment variable. More...
 
class  Feed
 A feed contains all the information required to download and execute an application. More...
 
class  FeedElement
 Abstract base class for XML serializable classes that are part of the Zero Install feed model. More...
 
class  FeedReference
 A linked feed that contains more implementations of this interface. Is treated by the solver as if it were part of the main feed. More...
 
struct  FeedTarget
 Associates a FeedUri with the Feed data acquired from there. More...
 
class  FeedUri
 Represents a feed or interface URI or local path. Unlike System.Uri this class only accepts HTTP(S) URLs and absolute local paths. More...
 
class  ForEachArgs
 Expands an environment variable to multiple arguments. The variable specified in ItemFrom is split using Separator and the Arguments are added once for each item. More...
 
class  GenericBinding
 Zero Install will not know how to run a program using generic bindings itself, but it will include them in any selections documents it creates, which can then be executed by your custom code. More...
 
class  Group
 All attributes of a group are inherited by any child Groups and Implementations as defaults, but can be overridden there. All Dependencys and Bindings are inherited (sub-groups may add more Dependencys and Bindings to the list, but cannot remove any). More...
 
interface  IArgBaseContainer
 An object that contains ArgBases. More...
 
interface  IBindingContainer
 An object that contains Bindings. More...
 
class  Icon
 An icon representing the application. Used in the Catalog GUI as well as for desktop icons, menu entries, etc.. More...
 
interface  IDependencyContainer
 An object that contains Dependencys and Restrictions. More...
 
interface  IDescriptionContainer
 An object that has localizable descriptions. More...
 
interface  IElementContainer
 An object that contains Groups and Implementations. Supports a composite pattern. More...
 
interface  IIconContainer
 An object that contains Iconss. More...
 
interface  IInterfaceUri
 An object that contains an interface URI. More...
 
interface  IInterfaceUriBindingContainer
 An object that contains an interface URI string. More...
 
class  Implementation
 An implementation is a specific version of an application that can be downloaded and executed (e.g. Firefox 3.6 for Windows). More...
 
class  ImplementationBase
 Information for identifying an implementation of a Feed. Common base for Implementation and ImplementationSelection. More...
 
class  ImplementationVersion
 Represents a version number consisting of dot-separated decimals and optional modifier strings. More...
 
class  InterfaceReference
 A reference to an interface URI, e.g. for specifying which interface this feed implements or by which interface it is replaced. More...
 
interface  IRecipeStep
 A retrieval step is a part of a Recipe. More...
 
interface  ISummaryContainer
 An object that has localizable summaries and descriptions. More...
 
class  JsonStorage
 Provides easy serialization to JSON files. More...
 
struct  ManifestDigest
 A manifest digest is a means of uniquely identifying an Implementation and verifying its contents. More...
 
class  ManifestDigestPartialEqualityComparer
 Uses ManifestDigest.PartialEquals to compare ManifestDigests. More...
 
class  ModelUtils
 Provides utility methods for interface and feed URIs. More...
 
class  OverlayBinding
 Make a chosen Implementation available by overlaying it onto another part of the file-system. More...
 
class  PackageImplementation
 An implementation provided by a distribution-specific package manager instead of Zero Install. More...
 
class  Recipe
 Retrieves an implementation by applying a list of IRecipeSteps, such as downloading and combining multiple archives. More...
 
class  RemoveStep
 Removes or moves a file or directory. It is an error if the path is outside the implementation. More...
 
class  RenameStep
 Renames or moves a file or directory. It is an error if the source or destination are outside the implementation. More...
 
class  Requirements
 A set of requirements/restrictions imposed by the user on the Implementation selection process. Used as input for the solver. More...
 
class  Restriction
 Restricts the versions of an Implementation that are allowed without creating a dependency on the implementation if its was not already chosen. More...
 
class  RetrievalMethod
 A retrieval method is a way of getting a copy of an Implementation. More...
 
class  Runner
 A special kind of dependency: the program that is used to run this one. For example, a Python program might specify Python as its runner. More...
 
class  SingleFile
 Retrieves an implementation by downloading a single file. More...
 
class  TargetBase
 Abstract base class for Element and FeedReference. Contains language and architecture parameters. More...
 
struct  VersionDottedList
 Represents a dotted-list part of a ImplementationVersion. More...
 
struct  VersionPart
 Represents a part of a ImplementationVersion containing nothing, a VersionModifier, a DottedList or both. More...
 
class  VersionRange
 Represents a (possibly disjoint) set of ranges of ImplementationVersions. More...
 
class  VersionRangePart
 Represents an individual non-disjoint part of a VersionRange. More...
 
class  VersionRangePartExact
 An exact version number like 2.0 as a part of a VersionRange. More...
 
class  VersionRangePartExclude
 An exclusion like !2.0 as a part of a VersionRange. More...
 
class  VersionRangePartRange
 A version range like 1.0..!2.0 as a part of a VersionRange. More...
 
class  WorkingDir
 Switches the working directory of a process on startup to a location within an implementation. Useful for supporting legacy Windows applications which do not properly locate their installation directory. More...
 
class  XmlUnknown
 Abstract base class for XML serializable classes that are intended to retain any unknown XML elements or attributes loaded from an XML file. More...
 

Enumerations

enum  OS {
  OS.All, OS.Posix, OS.Linux, OS.Solaris,
  OS.FreeBsd, OS.Darwin, OS.MacOSX, OS.Cygwin,
  OS.Windows, OS.Unknown = 100
}
 Describes an operating system family. More...
 
enum  Cpu {
  Cpu.All, Cpu.I386, Cpu.I486, Cpu.I586,
  Cpu.I686, Cpu.X64, Cpu.Ppc, Cpu.Ppc64,
  Cpu.ArmV6L, Cpu.ArmV7L, Cpu.Source = 99, Cpu.Unknown = 100
}
 Describes a CPU architecture. More...
 
enum  Importance { Importance.Essential, Importance.Recommended }
 Describes how important a dependency is (i.e. whether ignoring it is an option). More...
 
enum  Stability {
  Stability.Unset, Stability.Preferred, Stability.Packaged, Stability.Stable,
  Stability.Testing, Stability.Developer, Stability.Buggy, Stability.Insecure
}
 A stability rating for an Implementation. More...
 
enum  EnvironmentMode { EnvironmentMode.Prepend, EnvironmentMode.Append, EnvironmentMode.Replace }
 Controls how EnvironmentBinding.Insert or EnvironmentBinding.Value is added to a variable. More...
 
enum  VersionModifier { VersionModifier.None = 0, VersionModifier.Pre = -2, VersionModifier.RC = -1, VersionModifier.Post = 1 }
 VersionPart.Modifier More...
 

Detailed Description

Zero Install data model for the feed format. NuGet: ZeroInstall.Model

See also
https://docs.0install.net/specifications/feed/

Enumeration Type Documentation

◆ Cpu

enum ZeroInstall.Model.Cpu
strong

Describes a CPU architecture.

Enumerator
All 

Supports all CPU architectures (e.g. developed with cross-platform language like Java).

I386 

Supports CPUs with the i386 architecture or newer (up to i686).

I486 

Supports CPUs with the i486 architecture or newer (up to i686).

I586 

Supports CPUs with the i586 architecture or newer (up to i686).

I686 

Supports CPUs with the i686.

X64 

Requires a x86-64 capable CPU.

Ppc 

Supports CPUs with the PowerPC-architecture (used in older Macs).

Ppc64 

Requires a 64-bit capable PowerPC CPU.

ArmV6L 

Supports ARMv6 CPUs in little-endian mode.

ArmV7L 

Supports ARMv7 CPUs in little-endian mode.

Source 

This is a source release and therefore architecture-independent.

Unknown 

The supported CPU architecture has not been set yet.

◆ EnvironmentMode

Controls how EnvironmentBinding.Insert or EnvironmentBinding.Value is added to a variable.

Enumerator
Prepend 

The absolute path of the item is prepended to the current value of the variable.

Append 

The absolute path of the item is append to the end of the current value of the variable.

Replace 

The old value is overwritten, and the EnvironmentBinding.Default attribute is ignored.

◆ Importance

Describes how important a dependency is (i.e. whether ignoring it is an option).

Enumerator
Essential 

A version of the Dependency must be selected.

Recommended 

No version of the Dependency is also an option, although selecting a version is preferable to not selecting one.

◆ OS

enum ZeroInstall.Model.OS
strong

Describes an operating system family.

Enumerator
All 

Supports all operating systems (e.g. developed with cross-platform language like Java).

Posix 

Everything except Windows.

Linux 

Supports only Linux operating systems.

Solaris 

Supports only Solaris.

FreeBsd 

Supports only FreeBSD.

Darwin 

MacOSX, without the proprietary bits.

MacOSX 

Supports only MacOS X.

Cygwin 

A Unix-compatibility layer for Windows.

Windows 

Supports only Windows NT 5.0+ (Windows 2000, XP, 2003, Vista, 2008, 7, 2008 R2, ...).

Unknown 

The supported operating system has not been set yet.

◆ Stability

A stability rating for an Implementation.

Enumerator
Unset 

Inherit stability from Group or default to Testing

Preferred 

Set by user as a personal preference overriding other stability criteria.

Packaged 

Indicates that an implementation is provided as a PackageImplementation.

Stable 

No serious problems.

Testing 

Any new release.

Developer 

More extreme version of Testing, expected to have bugs.

Buggy 

Known bugs, none security-related.

Insecure 

Known bugs, some or all security-related.

◆ VersionModifier

VersionPart.Modifier

Enumerator
None 

No modifier; empty string

Pre 

Pre-release

RC 

Release candidate

Post 

Post-release