SDK Versioning

DropOnAir uses semantic versioning to ensure backward compatibility and smooth upgrades.

SDK packages are published per platform, so JS, Android, and iOS version numbers can differ while protocol compatibility stays aligned.

Version constants

import { SDK_VERSION, PROTOCOL_VERSION, PAYLOAD_FORMAT_VERSION } from '@droponair/sdk-js';

console.log(SDK_VERSION);            // e.g. "0.3.1"
console.log(PROTOCOL_VERSION);       // e.g. 4
console.log(PAYLOAD_FORMAT_VERSION); // e.g. 1
ConstantMeaningWhen it changes
SDK_VERSION / sdkVersionSemver of the SDK packageEvery release
PROTOCOL_VERSION / protocolVersionWire protocol version (WebSocket framing)Breaking proto changes only
PAYLOAD_FORMAT_VERSION / payloadFormatVersionEncrypted payload binary layoutEncryption format changes only

Server capability endpoint

GEThttps://sdk.droponair.com/api/info
{
  "protocolVersion": 4,
  "minSdkVersion": "0.1.0",
  "features": ["multi_device", "e2ee", "calls", "offline_messages", "group_messaging", "group_calls", "message_edit", "message_delete", "attachments"],
  "timestamp": "2026-05-18T..."
}

Backward compatibility: New proto fields are always additive. The server supports both legacy single-device and multi-device payloads. Check /api/infofeatures to detect capabilities at runtime.