Python bindings for the igc-net flight log exchange protocol
Project description
igc-net (Python)
Python bindings for the igc-net flight log exchange protocol, wrapping the Rust reference implementation via PyO3.
Installation
Install from PyPI:
pip install igc-net
If no matching wheel is available for your platform, pip will build the
extension from source. That requires a local Rust toolchain.
For unreleased local development, use a checkout and maturin develop; see
Development below.
Quick start
from igc_net import IgcNode, FlightMetadata
from pathlib import Path
# Inspect an IGC file (offline, no network needed)
meta = FlightMetadata.from_igc(Path("flight.igc").read_bytes())
print(meta.pilot_name, meta.duration_s)
# Publish to the network
with IgcNode(str(Path.home() / ".igc-net")) as node:
result = node.publish(Path("flight.igc").read_bytes(), filename="flight.igc")
print(result.igc_hash)
CLI
igc-net announce flight.igc # Publish an IGC file
igc-net runindex --policy eager # Run an indexer node
igc-net fetch <igc_hash> # Retrieve by hash
igc-net inspect flight.igc # Analyze offline
igc-net list # Show local index
Development
Requires Rust toolchain and Python 3.12+.
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
make test
Useful targets:
make help
make fmt
make vet
make itest
make compliance
Cross-language compliance tests require the Rust CLI binary and do not assume a local sibling checkout. Install it separately and point the tests at it:
cargo install igc-net-cli
IGCNET_RS_BIN="$HOME/.cargo/bin/igc-net" make compliance
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file igc_net-0.1.0.tar.gz.
File metadata
- Download URL: igc_net-0.1.0.tar.gz
- Upload date:
- Size: 83.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e69b90a24d1ed59873ffd93277e1c20d51264c29d2519dcb803508c64a448660
|
|
| MD5 |
645418da3df491b9a24c07bbe109830c
|
|
| BLAKE2b-256 |
ad5669c139307f832b097879668c53c4562590690845f869669a371ffde4490b
|
File details
Details for the file igc_net-0.1.0-cp314-cp314-macosx_11_0_arm64.whl.
File metadata
- Download URL: igc_net-0.1.0-cp314-cp314-macosx_11_0_arm64.whl
- Upload date:
- Size: 9.2 MB
- Tags: CPython 3.14, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d92043856c9fd001f05cf388ea502550b5b6a21d510ece6c62f3489df664f946
|
|
| MD5 |
431cbef998d95ffb1c3c5c1847381cac
|
|
| BLAKE2b-256 |
dec23bdfbfa5cb19aab7014dcd3879fb135acef8db699ab798ba4ef5581304d6
|