Skip to content

Releases: RISCfuture/SwiftNASR

2.0.0

01 May 22:20
1830f51

Choose a tag to compare

[2.0.0] - 2026-05-01

Breaking Changes

  • Renamed date-component-returning fields to …components accessors; canonical Date-returning extensions are now provided alongside under the un-suffixed name
  • Dimensional property and variable names are now suffixed with their unit of measure (e.g. altitudealtitudeFeet)
  • Glidepath in CSV format is now stored in degrees rather than 100ths of a degree

Added

  • CSV parsing support, with parsers for all remaining record types
  • Complete coverage of all TXT and CSV model types and their parsers
  • Measurement extensions for dimensional properties
  • Date-returning extensions accompanying the renamed components accessors
  • --record-types option for SwiftNASR_E2E
  • Improved CSV progress tracking; E2E tests split into separate files
  • LosslessStringConvertible conformance for canonical representations

Changed

  • Replaced FixedWidthParser with the more performant ByteParser
  • Normalized the Cycle interface for consistency across libraries
  • Adopted more typesafe parsing throughout
  • Concurrency improvements and warning fixes

Internal

  • Updated to Swift 6.2; CI matrix standardized to Swift 6.0–6.2 on macOS 14–15
  • Added swift-format
  • Updated GitHub Actions
  • Updated documentation generation and READMEs

1.0.0

20 Aug 07:59
f6d661a

Choose a tag to compare

Swift 6 concurrency mode

API Changes

  • Removes Combine and callback concurrency models in favor of exclusively
    async/await
    • Removes ConcurrentDistribution protocol (now redundant)
    • Marks loaders and distribution classes as final and Sendable
    • Adds FileReadActor to control synchronous access to a distribution's files
  • Converts record types (airport, navaid, etc.) into structs for concurrency
    guarantees
    • Adds Record and ParentRecord protocols describing parsed records
    • Makes record types Sendable and Codable
    • Makes parent record types Hashable, Equatable, and Identifiable
  • Converts NASR and NASRData to actors
    • Adds NASRDataCodable to preserve Codable support for NASRData
  • Advances minimum OS versions

Documentation Changes

  • Updates documentation
    • NOTE: A current bug in Swift-DocC is preventing some articles from showing
      in the sidebar

Test Changes

  • Updates tests to use async model
  • Rewrites the E2E test app

0.3.0

24 Sep 18:31
0d11f34

Choose a tag to compare

Updated Swift Tools version to 6.0 (stil using language version 5).

Breaking Changes

  • ARTCC: ICAO ID is now optional.

API Changes

  • ISO-Latin1 encoding is used when parsing distribution text files.
  • Moved from NSLocalizedString to string catalogs.
  • Runway: Added a gradient estimation method that uses the base and reciprocal
    elevations (when known). You can use this is a stopgap until the FAA resumes
    distributing runway gradient data.
  • Dependency updates.

0.2.0

24 Sep 18:30
1b20f49

Choose a tag to compare

Updated ZIPFoundation dependency.

Breaking Changes

  • The ArchiveFileDistribution and ArchiveDataDistribution initializers no
    longer return nil if the archive could not be read; instead, they rethrow
    the error thrown by ZIPFoundation.
  • The ArchiveFileDownloader and ArchiveDataDownloader's load methods no
    longer throw Error.badData; instead they rethrow the error thrown by
    ZIPFoundation.

0.1.0

24 Sep 18:30
bdbfad6

Choose a tag to compare

Initial pre-release (Airport, ARTCC, FSS, and Navaid parsing).