igc-net is a shared interoperability and archival layer beneath existing flight portals. Give every IGC file a universal identity, and let portals, archives, and tools discover, fetch, and retain flights without platform lock-in.
For pilots, igc-net can act as a peer-to-peer archival layer. Once a flight is retained by archival nodes, it remains retrievable as long as at least one archival node continues to serve it.
igc-net is developed at NTNU DSE Lab, part of NTNU, a public university and non-profit research environment. Ongoing work is aimed at providing archival capacity on university infrastructure.
The problem is not lack of portals. The problem is that they do not interoperate. Pilots upload the same IGC files repeatedly, each platform assigns its own identity, and long-term retention depends on private storage.
Your flight lives on one platform. Other platforms can't see it. Want it on XContest and DHV-XC? Upload the same file twice.
The same IGC bytes get a different ID on every platform — a database row, a UUID, a URL slug. Cross-referencing is impossible.
Invalid-track detection, thermal and wind analysis, site-risk signals, coaching annotations, and scoring are computed independently by each platform and usually stay locked there.
A portal-specific API is useful for that portal’s consumers, but it does not solve ecosystem-wide exchange.
If each portal exposes its own API, every integrator still has to map different identifiers, payloads, metadata conventions, and edge cases.
Each API inherits one platform’s rules, rate limits, availability constraints, and access model. Useful, but still silo-specific.
With many portals, bilateral integrations remain expensive and fragile. A shared protocol reduces the coordination problem by giving portals and tools one common exchange layer.
If the protocol only becomes valuable after every major portal joins, it fails. The intended path is edge-first adoption by actors that benefit immediately from shared identity, fetch, and archival.
National, regional, or club archives can begin collecting flights without asking pilots to upload to another separate endpoint.
University groups can assemble cross-platform corpora for reproducible studies without negotiating separate access to each silo.
Independent developers can build analytics, safety, and learning tools on a shared substrate instead of first building a bespoke ingestion pipeline.
Small communities can retain and exchange flights among themselves even before the largest incumbents choose to participate.
igc-net uses content addressing (BLAKE3) and gossip-based announcements to let any node publish, discover, and fetch flights.
A platform hashes the IGC file with BLAKE3, builds a metadata blob, and broadcasts an announcement on the gossip network.
Every node on the network receives the announcement. The metadata — including a geographic bounding box — is immediately available.
Nodes that want the raw flight data download and verify it. Geographic filters let you collect only flights in your region.
igc-net does not replace platforms. It connects them, and it also gives pilots and archivists a shared retention layer.
Embed igc-net as a library crate. Discover flights from other platforms without crawling, scraping or complicated agreements. Deduplicate using content hashes.
Bootstrap your app from the network. No bespoke ingestion pipeline needed. Access the cross-platform soaring corpus through the open protocol and reference implementations.
Publish once and place your flight into a network archive. As the shared corpus grows, pilots can benefit from new safety, training, visualisation, and learning tools built on top of the same flight identity.
Run a geo-filtered node and automatically archive every flight in your country. No extra pilot upload, no bilateral integration, no scraping.
Build reproducible cross-platform datasets for atmospheric research, thermal modelling, site usage, airspace interaction, and long-term soaring-condition studies. Shared flight identity makes methods easier to compare, validate, and extend.
Use the open layer both ways: consume shared flight data and publish reusable outputs back to the same flight identity. Thermal detection, wind estimates, anomaly flags, scoring hints, and coaching annotations can become reusable inputs for other tools.
Give students real-world soaring data for projects in distributed systems, data engineering, visualisation, safety analysis, meteorology, and machine learning. The open layer lets student work connect to an actual ecosystem instead of isolated toy datasets.
Lower the barrier for small tools and niche services. Developers can build safety dashboards, route debriefing tools, launch-site analytics, club archives, and specialised flight apps without first negotiating access to multiple private silos.
igc-net gives every IGC file a universal identity, enables cross-platform discovery and fetch, and creates a peer-to-peer archival layer for flights stored by archival nodes. The current whitepaper reflects the implemented Part I base protocol and the current reference implementation.
Download PDFThe protocol, specification, and reference implementations are open. The archival mission is public-interest infrastructure work.
The implementation-independent protocol specification, written with RFC 2119 keywords. The normative source of truth.
github.com/igc-net/specs →Publish, index, and fetch flights from the command line.
cargo install igc-net-cli
igc-net announce flight.igc
igc-net runindex --policy eager
github.com/igc-net/igc-net-rs →
Add igc-net to your Rust project as a dependency. Publish and index flights from your backend.
cargo add igc-net
docs.rs/igc-net →
Install the published Python package to inspect, publish, and index flights from Python code or the bundled CLI.
pip install igc-net
PyPI package →
Report issues, propose spec changes, discuss deployment strategies, or just say hello.
Spec discussions →