---
title: "DropletHostDescriptor, DroppyKit"
description: "What one host advertises to the handshake."
canonical: "https://getdroppy.app/docs/droppykit/api/droplet-host-descriptor"
last-updated: "2026-09-09"
---

# DropletHostDescriptor

What one host advertises to the handshake.

`struct DropletHostDescriptor`

## Initializers

### init(supportedABIRange:apiVersion:appVersion:)

`init(supportedABIRange: ClosedRange<Int>, apiVersion: SemanticVersion, appVersion: String)`

Creates a descriptor.

## Properties

### apiVersion

`let apiVersion: SemanticVersion`

The host's DroppyKit API version.

### appVersion

`let appVersion: String`

The host app's marketing version, compared numerically like the runtime manifests compare `minAppVersion`.

### supportedABIRange

`let supportedABIRange: ClosedRange<Int>`

ABI generations this host can load, as a closed range.

## Type methods

### numericVersionCompare(_:isAtLeast:)

`static func numericVersionCompare(_ version: String, isAtLeast minimum: String) -> Bool`

Numeric dotted-version comparison, mirroring the host's runtime manifest rule: split on dots, compare components as integers, and missing components count as zero. Malformed or overflowing input fails closed, so a hostile minimum cannot turn into zero and bypass the app version gate.

## Methods

### evaluate(_:)

`func evaluate(_ info: DropletBundleInfo) -> DropletCompatibilityVerdict`

Evaluates a bundle's declared requirements against this host. Order matters for error reporting only; every gate is checked the same way regardless of order.
