- XML parsing for METARs and TAFs from aviationweather.gov cache files.
METAR.from(xml:)andTAF.from(xml:)returnAsyncStream<Result<..., Error>>for resilient batch parsing with per-entry error handling.
- Winds aloft parsing.
- CLI tools (
decode-metar,decode-taf) now support--format xmland--output jsonoptions. - Log messages in CLI tools now go to stderr to keep JSON output clean.
- Updated to Swift 6.2.
- Added swift-format for code formatting.
- Fixed CSV parsing for updated aviationweather.gov format (quoted raw text, separate station_id column).
- Fixed handling of TAF periods where the end date comes before the start date (e.g., crossing month boundaries).
- Better handling of pressure tendency remarks ("5 group").
- Pressure change value is negated for downwards trends.
- Localized string fixed to indicate pressure value is a change.
This version introduces Swift 6 language support and concurrency mode.
- Swift 6 language support and concurrency mode.
METAR,TAF, and associated objects all nowSendable.parsefunctions are nowasync.
- Adds
METARFormattinglibrary for locale-aware METAR and TAF formatting.- Adds DecodeMETAR and DecodeTAF CLI tools to demonstrate formatting library.
- Adds documentation for METARFormatting.
Groupnow includes the raw text astext.
NSLocalizedStringusages removed in favor of xcstrings catalogs andString(localized:)- Added
Visibility.notRecordedcase to differentiate "VSNO" from "M". - Minimum OS versions advanced.
- Added some utility functions to
WeatherandRemark. - Made
Remark.Urgencysortable.
- More lenient parsing of direction ranges.
- Removed unused
Errorcase. - Fixed handling of TAF periods that cross month boundaries.
- Documentation fixes.
- Uses new
RegexBuilderAPI instead ofNSRegularExpression.METAR,TAF, andRemarkparsers are now actors.
- Removes METARGauntlet as the functionality is now included in the new CLI tools.
Initial release.