Celestrak
Author
Pure-Dart client for fetching, parsing, and caching satellite orbital data - TLE, OMM, and SATCAT metadata - from CelesTrak and Space-Track. Ships pluggable file and in-memory cache stores. No Flutter dependency; runs on any Dart platform.
- Dart
- HTTP
- TLE
- OMM
WHAT 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.
CACHING
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.
DESIGN 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.
KEY TAKEAWAYS
- Single package for both CelesTrak and Space-Track data sources
- Typed Dart models - no raw JSON or fixed-width TLE parsing in callers
- Pluggable cache layer: memory, file, or bring your own
- Parse isolation on native platforms; transparent fallback on web
- Zero Flutter dependency - runs in any Dart environment