AetharContact
← Back
SoftwareAuthor

Celestrak

A pure-Dart client for the two main sources of satellite orbital data on the internet: CelesTrak and Space-Track. The package handles HTTP, parsing, and caching so callers get typed Dart objects - no JSON wrangling, no rate-limit surprises.

01What it does

The package exposes three clients: CelesTrakClient fetches TLE and OMM data from CelesTrak's GP endpoint (individual satellites, named groups, or the full active catalog); SpaceTrackClient queries Space-Track's OMM API for authoritative government data; and SatcatClient fetches the SATCAT catalog for satellite metadata such as orbit type, launch date, and operational status.

Responses are parsed into strongly-typed Dart models - TleRecord, OmmRecord, SatcatEntry - so the caller never touches raw JSON or fixed-width TLE columns.

02Caching

Two built-in CacheStore implementations ship with the package: MemoryCacheStore for in-process caching (useful in tests or short-lived processes) and FileCacheStore for persistent, TTL-based caching to the device file system. The cache interface is public, so callers can substitute their own store - a shared-preferences implementation for Flutter or a database-backed store for a server.

Parse-heavy operations (large TLE sets) run in a separate isolate on native platforms and inline on the web, with the isolation abstracted behind a PlatformParseRunner interface.

03Design constraints

The package has zero Flutter dependency by design - it imports nothing from the Flutter SDK and resolves cleanly in plain Dart CLI tools, server-side code, or Dart tests. It also avoids pinning to a specific Dart SDK beyond the minimum required, so dependency-version capping is intentional: a downstream package that requires a higher SDK floor would silently raise the consumer's supported range.

Next

Satellite Observer