mavparser
⚡ Blazing-fast C-extension parser for ArduPilot DataFlash binary (
.BIN) logs.
mavparser is a high-performance Python library written in native C, designed to parse ArduPilot DataFlash binary log files up to 10x–30x faster than pure-Python implementations such as pymavlink.
🚀 Key Features
-
⚡ Extreme Speed — Decodes over 1.5 million messages per second with 60+ MB/s throughput.
-
🧩 C-Native Core — Binary parsing is implemented directly as a CPython extension for minimal overhead.
-
🌍 Cross-Platform Wheels — Pre-compiled binaries available for:
- Linux (
x86_64,aarch64) - macOS (Intel, Apple Silicon)
- Windows
- Python 3.9–3.13
- Linux (
-
📦 Zero Runtime Dependencies — Pure C implementation with no third-party runtime requirements.
📦 Installation
pip install mavparser
💡 Usage
Mode 1: Batch Parsing — mavparser.parse()
Parses the entire .BIN log into a Python list in memory.
Ideal for fast slicing, indexing, and small-to-medium-sized files.
import mavparser
# Parse the entire log file into a list of dictionaries
messages = mavparser.parse("flight_log.BIN")
print(f"Total messages parsed: {len(messages):,}")
# Access messages directly
print("First message:", messages[0])
print("Last message:", messages[-1])
# Filter in memory
gps_data = [msg for msg in messages if msg.get("type") == "GPS"]
print(f"Total GPS records: {len(gps_data):,}")
Mode 2: Streaming Parsing — mavparser.parse()
Processes messages sequentially using a Python generator.
Ideal for huge log files where loading the entire file into memory is undesirable.
import mavparser
gps_count = 0
high_alt_count = 0
# Stream messages without allocating a giant list in RAM
for msg in mavparser.parse("flight_log.BIN"):
if msg.get("mavpackettype") == "GPS":
gps_count += 1
if msg.get("Alt", 0) > 100:
high_alt_count += 1
print(f"Stream complete! Found {gps_count:,} GPS messages ({high_alt_count:,} above 100m).")
📊 Benchmark
Tested on a 285.91 MB ArduPilot .BIN log containing approximately 7,597,096 messages.
| Parser | Execution Time | Processing Speed | Performance |
|---|---|---|---|
mavparser (C Extension) |
~4.69 sec | ~61.0 MB/s | 1× baseline |
pymavlink |
~95.20 sec | ~3.0 MB/s | ~13× slower |
Note: Benchmark results depend on hardware, Python version, storage performance, and log characteristics.
📜 License
Distributed under the MIT License.
Metadata
Release files for mavparser 0.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mavparser-0.0.1.tar.gz | 983.1 kB | Details |
Built distributions (wheels)
Total release size: 1.8 MB
Release files / mavparser-0.0.1.tar.gz
| Download URL | mavparser-0.0.1.tar.gz |
|---|---|
| Size | 983.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4c01529a0bb97d68329239cad883cf9b53676a4f750517a46228ef0902e3da3f
|
|
BLAKE2b-256 checksum How to use checksums |
07e5bcfa01a96c2bcdb158fb4ad2134825800c93be1cafe565eabbd792f8b74e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / mavparser-0.0.1-cp313-cp313-win_amd64.whl
| Download URL | mavparser-0.0.1-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 29.5 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
ccec99b1bf8cb7aff8cef29978261cd77198e93b938d8d87280d47a72ad61ea3
|
|
BLAKE2b-256 checksum How to use checksums |
f4ea4ba80a54c159135c0d3f9030029e75fb9a22e80e75866da54d8a07a47478
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / mavparser-0.0.1-cp313-cp313-musllinux_1_2_x86_64.whl
| Download URL | mavparser-0.0.1-cp313-cp313-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 45.9 kB |
| Tags | CPython 3.13 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
543df5cc892b65a980c91535cc94499e6de0e6e4a22e16c429d522acc9db11e2
|
|
BLAKE2b-256 checksum How to use checksums |
cc316e8d61c6b2efc80c7a0e4479a1046744aa5377a11d04ce5da7f4daf82538
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / mavparser-0.0.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | mavparser-0.0.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 46.2 kB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
dad76c35a8e431607bdab73a2128b4c5f7d7e8e237373cbf66e4b91239fea2a2
|
|
BLAKE2b-256 checksum How to use checksums |
1d17bcfc65d1d8a0be3b12e6e93f6e89a4881f6aef6c3cecf177f188c4a15776
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / mavparser-0.0.1-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | mavparser-0.0.1-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 28.8 kB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
38692cec3149ff8ddcbf3e3bb2d882faa6414325a5df7b37fe166f914848d7e4
|
|
BLAKE2b-256 checksum How to use checksums |
95987b7e306b4bc4e8c229752e72af03f5e1a28a30a851f7053ebd0179945612
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / mavparser-0.0.1-cp313-cp313-macosx_10_13_x86_64.whl
| Download URL | mavparser-0.0.1-cp313-cp313-macosx_10_13_x86_64.whl |
|---|---|
| Size | 28.2 kB |
| Tags | CPython 3.13 macOS 10.13+ x86-64 |
|
SHA-256 checksum How to use checksums |
f9380f372286b43a164d0f8b61f6f6c8a7598159eb2564096f8270be888b3796
|
|
BLAKE2b-256 checksum How to use checksums |
e94d0cb3adb9dbc54e210603f5841c53c802820a39117ce95fd71c9bf00135c2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / mavparser-0.0.1-cp312-cp312-win_amd64.whl
| Download URL | mavparser-0.0.1-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 29.5 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
0b1000e33cadec62a340b4ffbb9ed40b9c3b09bf1ff236d0dbd6bbafb58646f9
|
|
BLAKE2b-256 checksum How to use checksums |
e095613d6b0239c711d68420af0a25952a7c009861e3977f374f851d6a0ee61f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / mavparser-0.0.1-cp312-cp312-musllinux_1_2_x86_64.whl
| Download URL | mavparser-0.0.1-cp312-cp312-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 45.9 kB |
| Tags | CPython 3.12 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
87627142140c9ebfd9fcb22c76c7de3e52173f61287de131b2115cab811dcc5e
|
|
BLAKE2b-256 checksum How to use checksums |
9c389b646a04b7bdcfc3a8933f6387924f7cbddd36b9ceac7bfa3bb9ce669cb6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / mavparser-0.0.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | mavparser-0.0.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 46.2 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
a896afa08dbee29261ec257f128a3368ab5c801e6f9bf8f21c2e902caca85402
|
|
BLAKE2b-256 checksum How to use checksums |
591340145f2048f75ad1e60862457b4de1716c33873af4987ff46a845ee5afd4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / mavparser-0.0.1-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | mavparser-0.0.1-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 28.8 kB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
258b357563d9def491dcb8d9107f0f980d9e9dce0fb4f963e087be6fa13e4b45
|
|
BLAKE2b-256 checksum How to use checksums |
5588e3de065d1e2bd014333c253c7001b191c72ae5ca2c9ff75cfd71bdc07984
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / mavparser-0.0.1-cp312-cp312-macosx_10_13_x86_64.whl
| Download URL | mavparser-0.0.1-cp312-cp312-macosx_10_13_x86_64.whl |
|---|---|
| Size | 28.2 kB |
| Tags | CPython 3.12 macOS 10.13+ x86-64 |
|
SHA-256 checksum How to use checksums |
b5d0f9a91ecd0792f5d65b433d4e33772b9b876acabfc3adeac9a23407007aed
|
|
BLAKE2b-256 checksum How to use checksums |
0fde38d71cf25327f8098486f4746875c2fff262c07b047073fd0483d30bb74b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / mavparser-0.0.1-cp311-cp311-win_amd64.whl
| Download URL | mavparser-0.0.1-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 29.5 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
fd35f0616e6c4ee027710dccad5c5e396f6bc50deb7b85d16a1b3077a102c8e8
|
|
BLAKE2b-256 checksum How to use checksums |
2ffe3a04bae83fa0db70211e50a2654ab03cfad7912d1d2e3336653d7701f5e3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / mavparser-0.0.1-cp311-cp311-musllinux_1_2_x86_64.whl
| Download URL | mavparser-0.0.1-cp311-cp311-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 44.8 kB |
| Tags | CPython 3.11 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
cd128815a12bcfe99b79bbbfee2540ce272bb5301390da16b2f050a96f9c980b
|
|
BLAKE2b-256 checksum How to use checksums |
a65c5a1c1ba168a7da5ef6527ee0305b7c0c896282565758a002dac174b87fee
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / mavparser-0.0.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | mavparser-0.0.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 45.2 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
b29b286f5d0d0f5c951b7db9a7509806fc41b6d88af6c874decf4e05ccdaca4d
|
|
BLAKE2b-256 checksum How to use checksums |
f611e09bf0372d5e25e898ae72934f0de88fd4b97f49cb9f8049835f494c2579
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / mavparser-0.0.1-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | mavparser-0.0.1-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 15.1 kB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
7adc1b186320224cb910bf190eeb8ac9ef6720b3ea982af91939bd007514f708
|
|
BLAKE2b-256 checksum How to use checksums |
23df077e0b0a5a82abf72033bc4222eb57e83d591ebb20194aa76407815d7fe2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / mavparser-0.0.1-cp311-cp311-macosx_10_9_x86_64.whl
| Download URL | mavparser-0.0.1-cp311-cp311-macosx_10_9_x86_64.whl |
|---|---|
| Size | 14.7 kB |
| Tags | CPython 3.11 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
e419d6ed12e27ca96b7fcb4ee2d4290f7af2d491116a6f66bb5a69702a7ded2a
|
|
BLAKE2b-256 checksum How to use checksums |
eee71019afe4526991aa476c58b66e9d7f7ef26cf1ef71cf1ed6e2fa8e467057
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / mavparser-0.0.1-cp310-cp310-win_amd64.whl
| Download URL | mavparser-0.0.1-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 29.5 kB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
9544ef54f15f1ebc1974faa3ec0f5d0f0640da4e0dba86e62ee80bbdf805acb2
|
|
BLAKE2b-256 checksum How to use checksums |
71c925be2f6a6a0c07abf4c933a51b04b9494cd3cd7963cf37f177ead8c7a914
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / mavparser-0.0.1-cp310-cp310-musllinux_1_2_x86_64.whl
| Download URL | mavparser-0.0.1-cp310-cp310-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 44.6 kB |
| Tags | CPython 3.10 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
936e6813eabc54e58bd839487ae5babb85af95645c60076a64960d42b9ae2348
|
|
BLAKE2b-256 checksum How to use checksums |
f39112575abbbb6867d77bab8812e1684436e4796057ba6ac8f640ecfea7daf9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / mavparser-0.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | mavparser-0.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 45.0 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
51c151e7a5ce7f7c31eab866166fd4c285537bffa363e87e6b8df703d356a10b
|
|
BLAKE2b-256 checksum How to use checksums |
97fe24bfd722438fdbb5cd87c5dd9cd44b72740e8678ac69a869b96ad47d90a5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / mavparser-0.0.1-cp310-cp310-macosx_11_0_arm64.whl
| Download URL | mavparser-0.0.1-cp310-cp310-macosx_11_0_arm64.whl |
|---|---|
| Size | 28.7 kB |
| Tags | CPython 3.10 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
bf4c805df2a859ed5411d9a502d421ee574284b79298218b141bebebad1538ec
|
|
BLAKE2b-256 checksum How to use checksums |
bd1486e23fa56f2e10ff3c19a817e6d80f3fb88523113c299772af5f6aa6e04a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / mavparser-0.0.1-cp310-cp310-macosx_10_9_x86_64.whl
| Download URL | mavparser-0.0.1-cp310-cp310-macosx_10_9_x86_64.whl |
|---|---|
| Size | 28.3 kB |
| Tags | CPython 3.10 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
25b69fbb694a47b3dcb29d7ec7a59e95ed9494e3e28b70f068572f86686ca9fa
|
|
BLAKE2b-256 checksum How to use checksums |
d9bb5e883ad5e0dd081bcd94086dbcdac7a3e0fda98cc4316e45462b7dce3def
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / mavparser-0.0.1-cp39-cp39-win_amd64.whl
| Download URL | mavparser-0.0.1-cp39-cp39-win_amd64.whl |
|---|---|
| Size | 29.5 kB |
| Tags | CPython 3.9 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
461aec627b6d78aaa50b125ec1d79f76096efb7a84d38b40f7bb665005198c1b
|
|
BLAKE2b-256 checksum How to use checksums |
6785275c2ac5e173364522761291b7e1fa7031d73f4a4c16910c89eb79e58947
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / mavparser-0.0.1-cp39-cp39-musllinux_1_2_x86_64.whl
| Download URL | mavparser-0.0.1-cp39-cp39-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 44.8 kB |
| Tags | CPython 3.9 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
06d136a42443de421b09c47b0eb7c42af4802253807aabda6a279e6f063b7a82
|
|
BLAKE2b-256 checksum How to use checksums |
bd93b561131726688c15bfeecb75da4be47fcb900d5747d744a47a4e69a2d046
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / mavparser-0.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | mavparser-0.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 45.2 kB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
da53bead08d09f858362f02f4bf471bb2a4ba87d62b02693e913dda234ad93ed
|
|
BLAKE2b-256 checksum How to use checksums |
dc2daf0bc95e2c8c7ec311675e363da605e5b8335555bc159f0f06590af3f4b3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / mavparser-0.0.1-cp39-cp39-macosx_11_0_arm64.whl
| Download URL | mavparser-0.0.1-cp39-cp39-macosx_11_0_arm64.whl |
|---|---|
| Size | 28.8 kB |
| Tags | CPython 3.9 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
d206b017576222899d982bd48c3f311324300f6c42fc086943bf47e6f354e258
|
|
BLAKE2b-256 checksum How to use checksums |
67ad3f04b646d0082936c73261e6d018903a78f63b327612f54fee0b83279d32
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / mavparser-0.0.1-cp39-cp39-macosx_10_9_x86_64.whl
| Download URL | mavparser-0.0.1-cp39-cp39-macosx_10_9_x86_64.whl |
|---|---|
| Size | 28.4 kB |
| Tags | CPython 3.9 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
bd3aceda27610ea628793aa2d2e68079725e228684cfa98f8750a008cad9ccce
|
|
BLAKE2b-256 checksum How to use checksums |
b91b01bbdb3cd63ddd3a73b9752be706e7b69d1ff70c6f51f2f12a8db02c9e06
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|