Skip to main content

High-performance audio decoding with FFmpeg and C++

Project description

AvioFlow

AvioFlow is a high-performance and easy-to-use streaming audio decoding library.

Features

  • Audio format: mp3, opus, flac, ogg, wav, m4a, acc. Anything.
  • Flexible Input: Files, URLs, memory buffers, and real-time streams
  • Hardware Capture: WASAPI loopback (system audio) and DirectShow (microphones)
  • Resampling: Built-in sample rate conversion
  • Zero-copy API: Direct buffer access via FrameData for maximum performance
  • Cross-platform: Windows, Linux, macOS

Supported language

C++
python pybind11 pip install avioflow
JavaScript node-add-api npm install avioflow
Java JNI Gradle/Maven
wasm
vsix

Installation

Python

pip install avioflow

Java

Gradle users need the main Java API jar plus one native classifier for the target platform:

dependencies {
    implementation("io.github.lxp3:avioflow:0.3.5")
    runtimeOnly("io.github.lxp3:avioflow:0.3.5:linux-x86_64")
}

Maven:

<dependency>
  <groupId>io.github.lxp3</groupId>
  <artifactId>avioflow</artifactId>
  <version>0.3.2</version>
</dependency>
<dependency>
  <groupId>io.github.lxp3</groupId>
  <artifactId>avioflow</artifactId>
  <version>0.3.2</version>
  <classifier>linux-x86_64</classifier>
  <scope>runtime</scope>
</dependency>

Native classifiers: linux-x86_64, linux-aarch64, macos-x86_64, macos-aarch64, windows-x86_64, windows-aarch64.

C++ (CMake)

Download the C++ package for your platform and linkage, then point CMake at the extracted package root with CMAKE_PREFIX_PATH.

find_package(avioflow CONFIG REQUIRED)
target_link_libraries(your_target PRIVATE avioflow::avioflow)

Release packages are split by linkage and platform:

  • avioflow-shared-linux-x64, avioflow-static-linux-x64
  • avioflow-shared-linux-arm64, avioflow-static-linux-arm64
  • avioflow-shared-macos-x64, avioflow-static-macos-x64
  • avioflow-shared-macos-arm64, avioflow-static-macos-arm64
  • avioflow-shared-win-x64, avioflow-static-win-x64
  • avioflow-shared-win-arm64, avioflow-static-win-arm64

Shared packages include the FFmpeg dynamic libraries needed at runtime. Static packages include FFmpeg static libraries, transitive static dependency metadata, and the bundled FFmpeg CMake package, so consumers do not need to configure FFmpeg separately.


C++ API

Core Classes

AudioDecoder

Main class for audio decoding.

#include "avioflow-cxx-api.h"
using namespace avioflow;

// Constructor options
AudioStreamOptions options;
options.output_sample_rate = 16000;    // Target sample rate
options.input_format = "s16le";        // For streaming: source format
options.input_sample_rate = 48000;     // For streaming: source rate
options.input_channels = 2;            // For streaming: source channels

AudioDecoder decoder(options);

Methods

Method Description
open(source) Open file path, URL, or device
push(data, size) Push raw bytes for streaming decode
read() Decode next frame, returns FrameData. (Formerly decode_next)
get_samples() Decode all currently available samples. (Formerly get_samples)
get_metadata() Get audio metadata
is_finished() Check if EOF reached

FrameData

Zero-copy frame data structure returned by read().

struct FrameData {
    float** data;        // Planar channel pointers: data[channel][sample]
    int num_channels;    // Number of channels
    int num_samples;     // Samples per channel

    operator bool();     // True if valid data
};

⚠️ Warning: FrameData.data points to internal buffer, valid only until next read() call.

Examples

File Decoding (Offline)

AudioDecoder decoder({.output_sample_rate = 16000});
decoder.open("audio.mp3");

auto samples = decoder.get_samples();  // vector<vector<float>>
std::cout << "Channels: " << samples.size() << std::endl;
std::cout << "Samples: " << samples[0].size() << std::endl;

Frame-by-Frame Decoding

AudioDecoder decoder;
decoder.open("audio.mp3");

while (auto frame = decoder.read()) {
    // frame.data[channel][sample]
    for (int c = 0; c < frame.num_channels; c++) {
        process(frame.data[c], frame.num_samples);
    }
}

Streaming Decode (Push-based)

AudioStreamOptions opts;
opts.input_format = "s16le";
opts.input_sample_rate = 48000;
opts.input_channels = 2;

AudioDecoder decoder(opts);
decoder.push(raw_bytes, size);  // Auto-initializes on first call

auto samples = decoder.get_samples(); // Decode all buffered data
// Or frame-by-frame:
while (auto frame = decoder.read()) {
    // Process decoded audio...
}

Python API

AudioDecoder

import avioflow

# Constructor with keyword arguments
decoder = avioflow.AudioDecoder(
    output_sample_rate=16000,    # Optional: target sample rate
    input_format="s16le",        # For streaming: source format
    input_sample_rate=48000,     # For streaming: source rate
    input_channels=2             # For streaming: source channels
)

Methods

Method Returns Description
load(source) Metadata Load file, URL, pathlib.Path, or bytes-like input
decoder(data) ndarray Push bytes-like data and decode (streaming)
read() ndarray Decode next frame
get_samples() ndarray Decode all available samples
is_finished() bool Check if EOF

Metadata

# Quick metadata inspection without full decoding
meta = avioflow.info("audio.mp3")
print(f"Duration: {meta.duration}s")
print(f"Sample Rate: {meta.sample_rate}Hz")
print(f"Codec: {meta.codec}")

# Encoded audio bytes also work
with open("audio.mp3", "rb") as f:
    meta = avioflow.info(f.read())

Examples

File Decoding

decoder = avioflow.AudioDecoder(output_sample_rate=16000)
meta = decoder.load("speech.wav")
samples = decoder.get_samples()      # numpy array (channels, samples)
print(f"Shape: {samples.shape}")     # e.g., (1, 160000)

Streaming Decode

decoder = avioflow.AudioDecoder(
    input_format="s16le",
    input_sample_rate=48000,
    input_channels=2
)

while True:
    data = socket.recv(4096)
    samples = decoder(data)  # Push & get samples in one call
    if samples.size > 0:
        process_audio(samples)

Device Discovery

devices = avioflow.DeviceManager.list_audio_devices()
for dev in devices:
    print(f"{dev.name}: {dev.description}")

Logging

avioflow.set_log_level("debug")  # quiet, error, warning, info, debug, trace

Node.js API

Compatibility

Runtime Version Support
Node.js 16, 18, 20, 22+ ✅ Native (N-API)
Electron All versions ✅ Supported (requires rebuild)
Architectures x64 ✅ Linux, Windows

Installation

npm install avioflow

ESM Import

import avioflow from 'avioflow';

Module-level Functions

Function Returns Description
load(path, options?) {metadata, samples} Convenience: Opens, decodes all samples, and returns both in one call.
listAudioDevices() DeviceInfo[] List available system audio devices.
setLogLevel(level) void Set FFmpeg log level ("quiet", "info", "debug", etc.).

AudioDecoder

// Constructor with options object
const decoder = new avioflow.AudioDecoder({
    outputSampleRate: 16000,    // Optional: target sample rate
    outputNumChannels: 1,       // Optional: target channels
    inputFormat: 's16le',       // For streaming: source format
    inputSampleRate: 48000,     // For streaming: source rate
    inputChannels: 2            // For streaming: source channels
});

Methods

Method Returns Description
load(source) Metadata Load file, URL, or device name. Returns metadata.
push(buffer) void Push raw encoded bytes for streaming.
read() Float32Array[] | null Decode next frame. Returns array of channel data.
getSamples() Float32Array[] Decode all available samples at once.
isFinished() boolean Check if end of stream reached.

Examples

Quick File Loading (Recommended)

// Opens file, resamples to 16kHz mono, and decodes everything
const { metadata, samples } = avioflow.load("audio.mp3", {
    outputSampleRate: 16000,
    outputNumChannels: 1
});

console.log(`Duration: ${metadata.duration}s`);
console.log(`Channels: ${samples.length}, Samples: ${samples[0].length}`);

Batch Decoding with Decoder Instance

const decoder = new avioflow.AudioDecoder({ outputSampleRate: 44100 });
const meta = decoder.load("audio.wav");

// Decodes the entire file into memory
const allSamples = decoder.getSamples();
process(allSamples);

Streaming Decode (Real-time)

const decoder = new avioflow.AudioDecoder({
    inputFormat: 's16le',
    inputSampleRate: 48000,
    inputChannels: 2
});

socket.on('data', (chunk) => {
    decoder.push(chunk);

    // Get all samples decoded from this chunk
    const samples = decoder.getSamples();
    if (samples.length > 0) {
        processAudio(samples);
    }
});

Device Discovery

const devices = avioflow.listAudioDevices();
devices.forEach(dev => {
    console.log(`${dev.isOutput ? 'Output' : 'Input'}: ${dev.name} (${dev.description})`);
});

Java API

File Decoding

import io.github.lxp3.avioflow.AudioDecoder;
import io.github.lxp3.avioflow.AudioStreamOptions;

try (AudioDecoder decoder = new AudioDecoder(
        new AudioStreamOptions().outputSampleRate(16000))) {
    decoder.open("audio.mp3");
    float[][] samples = decoder.getSamples();
    System.out.println(samples.length + " channels");
}

Encoding

import io.github.lxp3.avioflow.AudioEncoder;
import io.github.lxp3.avioflow.AudioWriteOptions;

AudioEncoder.saveAudio(
    "out.wav",
    samples,
    new AudioWriteOptions()
        .containerFormat("wav")
        .codecName("pcm_s16le")
        .sampleRate(16000)
);

Build from Source

Prerequisites

  • CMake 3.20+
  • Visual Studio 2022+ (Windows) or GCC 11+ (Linux)
  • Python 3.8+ with pybind11 (for Python bindings)
  • Node.js 16+ (for Node.js bindings)

C++ & Python Build

./build.sh

This will configure and build the C++ library and Python bindings.

Node.js Build

./build-nodejs.sh

This will build the Node.js bindings using cmake-js and run compatibility tests.

Java Build

./build-java.sh linux-x86_64

This builds the JNI library and creates a platform classifier jar.


Supported Formats

AvioFlow supports a wide range of audio formats, codecs, and devices through FFmpeg.

For a complete and detailed list of supported decoders, encoders, and input formats, please refer to the Supported Formats Reference.


License

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

avioflow-0.3.5-cp313-cp313-win_arm64.whl (6.7 MB view details)

Uploaded CPython 3.13Windows ARM64

avioflow-0.3.5-cp313-cp313-win_amd64.whl (6.9 MB view details)

Uploaded CPython 3.13Windows x86-64

avioflow-0.3.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

avioflow-0.3.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

avioflow-0.3.5-cp313-cp313-macosx_12_0_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.13macOS 12.0+ x86-64

avioflow-0.3.5-cp313-cp313-macosx_12_0_arm64.whl (5.0 MB view details)

Uploaded CPython 3.13macOS 12.0+ ARM64

avioflow-0.3.5-cp312-cp312-win_arm64.whl (6.7 MB view details)

Uploaded CPython 3.12Windows ARM64

avioflow-0.3.5-cp312-cp312-win_amd64.whl (6.9 MB view details)

Uploaded CPython 3.12Windows x86-64

avioflow-0.3.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

avioflow-0.3.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

avioflow-0.3.5-cp312-cp312-macosx_12_0_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.12macOS 12.0+ x86-64

avioflow-0.3.5-cp312-cp312-macosx_12_0_arm64.whl (5.0 MB view details)

Uploaded CPython 3.12macOS 12.0+ ARM64

avioflow-0.3.5-cp311-cp311-win_arm64.whl (6.7 MB view details)

Uploaded CPython 3.11Windows ARM64

avioflow-0.3.5-cp311-cp311-win_amd64.whl (6.9 MB view details)

Uploaded CPython 3.11Windows x86-64

avioflow-0.3.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

avioflow-0.3.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

avioflow-0.3.5-cp311-cp311-macosx_12_0_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.11macOS 12.0+ x86-64

avioflow-0.3.5-cp311-cp311-macosx_12_0_arm64.whl (5.0 MB view details)

Uploaded CPython 3.11macOS 12.0+ ARM64

avioflow-0.3.5-cp310-cp310-win_arm64.whl (6.7 MB view details)

Uploaded CPython 3.10Windows ARM64

avioflow-0.3.5-cp310-cp310-win_amd64.whl (6.9 MB view details)

Uploaded CPython 3.10Windows x86-64

avioflow-0.3.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

avioflow-0.3.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

avioflow-0.3.5-cp310-cp310-macosx_12_0_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.10macOS 12.0+ x86-64

avioflow-0.3.5-cp310-cp310-macosx_12_0_arm64.whl (5.0 MB view details)

Uploaded CPython 3.10macOS 12.0+ ARM64

avioflow-0.3.5-cp39-cp39-win_arm64.whl (6.7 MB view details)

Uploaded CPython 3.9Windows ARM64

avioflow-0.3.5-cp39-cp39-win_amd64.whl (6.9 MB view details)

Uploaded CPython 3.9Windows x86-64

avioflow-0.3.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

avioflow-0.3.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.3 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

avioflow-0.3.5-cp39-cp39-macosx_12_0_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.9macOS 12.0+ x86-64

avioflow-0.3.5-cp39-cp39-macosx_12_0_arm64.whl (5.0 MB view details)

Uploaded CPython 3.9macOS 12.0+ ARM64

avioflow-0.3.5-cp38-cp38-win_amd64.whl (6.9 MB view details)

Uploaded CPython 3.8Windows x86-64

avioflow-0.3.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

avioflow-0.3.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.3 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

avioflow-0.3.5-cp38-cp38-macosx_12_0_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.8macOS 12.0+ x86-64

avioflow-0.3.5-cp38-cp38-macosx_12_0_arm64.whl (167.8 kB view details)

Uploaded CPython 3.8macOS 12.0+ ARM64

File details

Details for the file avioflow-0.3.5-cp313-cp313-win_arm64.whl.

File metadata

  • Download URL: avioflow-0.3.5-cp313-cp313-win_arm64.whl
  • Upload date:
  • Size: 6.7 MB
  • Tags: CPython 3.13, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for avioflow-0.3.5-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 380f4478ef253175cc35b2a7f65d17751156508130290fa23eb7edfe9ddfc614
MD5 e423ebc9544b9c73135d08be5568a7fd
BLAKE2b-256 41365dac53e264921cfe2455fbd12687825b87531da29557174f37ad3daa7a2e

See more details on using hashes here.

File details

Details for the file avioflow-0.3.5-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: avioflow-0.3.5-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 6.9 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for avioflow-0.3.5-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 fea7b20a9924f1f367a079615cd42c504c854f193c356b9120388a878bd5c3fb
MD5 bf5cd97c092852da51420d411d63afb2
BLAKE2b-256 082565c424d0c42ce7fdb9ed61e75d6fdcbef929890a1b4f0b850eb779fee463

See more details on using hashes here.

File details

Details for the file avioflow-0.3.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for avioflow-0.3.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b40b9d9753d39560d51509b4d1ce9c4994bc3ef16bf73b1b32ff72a82417ed4b
MD5 7e157a902c16237693e513f067031eab
BLAKE2b-256 fc6b7f6f4af6ca134fd4dcd82f33e2dd4d750ae81cf9f6821fefc642601fe7f9

See more details on using hashes here.

File details

Details for the file avioflow-0.3.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for avioflow-0.3.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2dcf999363da88c39ca254c396e73dc7d1a3d2d36cb49bea8d1cc36df42defbb
MD5 f78f8417f9f5948adfa9a6955eae5fd7
BLAKE2b-256 8e90f878f3961160d86fe9752b032f1cccec730ce69575f2256b5b232f702687

See more details on using hashes here.

File details

Details for the file avioflow-0.3.5-cp313-cp313-macosx_12_0_x86_64.whl.

File metadata

File hashes

Hashes for avioflow-0.3.5-cp313-cp313-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 88aaae5de10b4fbdb349d033d8eec01c1ff112d83aeab6ea214025130d7031cf
MD5 fd446fc0e6f3147f99516bfd5e3383a2
BLAKE2b-256 c20934aa89ab883f2e567b3fb970434873946041d47a09e566312595b87c2c30

See more details on using hashes here.

File details

Details for the file avioflow-0.3.5-cp313-cp313-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for avioflow-0.3.5-cp313-cp313-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 9c766bb83513ff08381a4526cc1b48aeb9280d253d3ffdb89d87e1d3a727e8c9
MD5 5c68b449cb376d13684daaac731be7d0
BLAKE2b-256 4e516463cd17b5f2f4ba2476fcfb230a7e780ea1dfd49e1c8c0f38e374950b33

See more details on using hashes here.

File details

Details for the file avioflow-0.3.5-cp312-cp312-win_arm64.whl.

File metadata

  • Download URL: avioflow-0.3.5-cp312-cp312-win_arm64.whl
  • Upload date:
  • Size: 6.7 MB
  • Tags: CPython 3.12, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for avioflow-0.3.5-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 67c42992d0e989cf712bf6904ac3a39f39eb35fcd9c366699230ce689cdf970d
MD5 50a06ea60ad87cb62c08f696a119d0eb
BLAKE2b-256 a4fe794ca98db0ec97724fc33b0cb4ec82d5e34c97f7aff59479b006c676bf87

See more details on using hashes here.

File details

Details for the file avioflow-0.3.5-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: avioflow-0.3.5-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 6.9 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for avioflow-0.3.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c95c652ffb1825147794970649c45a1ccfcee30e2ee40eeb495c894b43431428
MD5 4a42fb8197e3afb811196aedaf532b9b
BLAKE2b-256 c36f2d0b0103121c5ea4324beeeb24c3f36f4b45a63d82e26aeb30f63606ad81

See more details on using hashes here.

File details

Details for the file avioflow-0.3.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for avioflow-0.3.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ebdc3545152cb86a35e40bd9db3c409684097c6e3725aaaef8e6f1f541bc37dd
MD5 9e038b8dae13c4b4f8aa572a0624829e
BLAKE2b-256 53d62f1ebf10e2403e5edfbb383e3823d5a3c907bf3b55ec97ce465708542634

See more details on using hashes here.

File details

Details for the file avioflow-0.3.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for avioflow-0.3.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 06d7ae29b79b6d3724b84d4b73239820e7f2687ce5d25e3e1c15bf9eac28bb09
MD5 28705d48883339ab15567eb252ddc941
BLAKE2b-256 12d2bd455f46dadfd88f69ad005cb9d02b19c7fa5530b925f607e6b362f6e585

See more details on using hashes here.

File details

Details for the file avioflow-0.3.5-cp312-cp312-macosx_12_0_x86_64.whl.

File metadata

File hashes

Hashes for avioflow-0.3.5-cp312-cp312-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 518148039dacbae2b53cd2288460db5e0072d7fb642bccb11f5eac414a1932a2
MD5 e428724e1aade7e0b75807b78013de85
BLAKE2b-256 03f06d2faf135262fb9321f06506470a3801a7155e1a7ed1753e7129b88b2017

See more details on using hashes here.

File details

Details for the file avioflow-0.3.5-cp312-cp312-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for avioflow-0.3.5-cp312-cp312-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 066b24b0eac1470ca5f2f6880a221895e028c69632f11193dd816cbb9990732e
MD5 223fa87ff268a57864db0717a1bdb0dc
BLAKE2b-256 48a6e2c1d148da7340fcb04000c29d5aa1c1385176bd824f7d1bf7adceae81af

See more details on using hashes here.

File details

Details for the file avioflow-0.3.5-cp311-cp311-win_arm64.whl.

File metadata

  • Download URL: avioflow-0.3.5-cp311-cp311-win_arm64.whl
  • Upload date:
  • Size: 6.7 MB
  • Tags: CPython 3.11, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for avioflow-0.3.5-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 2f2bb4f92eef84955a2df500abcb205f2e86653e95c0e8b67aa2927a876ab038
MD5 abbeb177817364360428230c70cb877d
BLAKE2b-256 3067ad7f17427db9c210209f887c6a3cf5bec0781f05263cc55c8fa309a91402

See more details on using hashes here.

File details

Details for the file avioflow-0.3.5-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: avioflow-0.3.5-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 6.9 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for avioflow-0.3.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 9524c5642542ff5ab1b67149add8f5c0f50f0cc4cc1214a075d1afb65432f985
MD5 c4ca5d6e0fb34c980a9a2068afefd94f
BLAKE2b-256 06673c4683ceea2f229bd7d0fc1426ab2d629106bb99f0b4e80120eaee8c2c5a

See more details on using hashes here.

File details

Details for the file avioflow-0.3.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for avioflow-0.3.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2a3c1da5558a4a09fe04ee4c4c13483f3e62ffb9f0714ee77ae4dda2b81e0c60
MD5 e1e3490818fe76d798ce17c1b62d7023
BLAKE2b-256 739f222feac0a9582d18f9902eee0671b72075f4c0af6df28ec00f7a989fa5a6

See more details on using hashes here.

File details

Details for the file avioflow-0.3.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for avioflow-0.3.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e975b1226a46ad9d53401b58b499c2c48d526dc29cb935ed5913883eb20b2d97
MD5 e59ba55e97037627a600c24046443382
BLAKE2b-256 fe73e32ee6e775ea9386dbdb222eb8803288546cc6bb391ffd2a9b62430f3fc2

See more details on using hashes here.

File details

Details for the file avioflow-0.3.5-cp311-cp311-macosx_12_0_x86_64.whl.

File metadata

File hashes

Hashes for avioflow-0.3.5-cp311-cp311-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 e661c1f0f443f8ccc6ada4e1929e539237617de6d44ef0078ad28ecc9fe7fe10
MD5 1dd9ac32b39613b2bb34479190a74c10
BLAKE2b-256 d1b735875e7269b37e4250291e352ecde298fc8887454da1f9872600c61f7ec7

See more details on using hashes here.

File details

Details for the file avioflow-0.3.5-cp311-cp311-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for avioflow-0.3.5-cp311-cp311-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 57cfc8cad032f372bb6cc56c987c344bddc062c8b7c85790e1dc7db9d8985012
MD5 c7d85da648b573794047f10fb48e332a
BLAKE2b-256 a14d35ace968fbf98e3c557ab592915ff33980159108fe6b50fc6ad19ed84476

See more details on using hashes here.

File details

Details for the file avioflow-0.3.5-cp310-cp310-win_arm64.whl.

File metadata

  • Download URL: avioflow-0.3.5-cp310-cp310-win_arm64.whl
  • Upload date:
  • Size: 6.7 MB
  • Tags: CPython 3.10, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for avioflow-0.3.5-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 a453c7208275efbee90f9c9d54e07db2f06ac6a98200bb7ef51b7631cb0f610e
MD5 50b6dbfa73728d9cdae5a2537c08c6a0
BLAKE2b-256 7b241b55c961d346b0a7e68f027726409258c7eaa0b4563754cece865f7a961d

See more details on using hashes here.

File details

Details for the file avioflow-0.3.5-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: avioflow-0.3.5-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 6.9 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for avioflow-0.3.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d575bb9e8775fb6914e572cdac10d4d616817e110c6d4e22e16625557677cf1a
MD5 e9dfe465b77e065fbf1b119b8243e94d
BLAKE2b-256 92883d230ae6892b24fea9e3a99b7e096fd28a5f6e70d34b68c0d3276e942709

See more details on using hashes here.

File details

Details for the file avioflow-0.3.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for avioflow-0.3.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7d319155c9c8ce77e63b5b5c79e71f4d43f5b5fbde865726870373d0dbf8d2cc
MD5 3b0b0f7d717e4bb661829284387a436d
BLAKE2b-256 8f8b28c9616349e3f4771df3b13abbce23ff971f73a662e70299c3fdad4a4065

See more details on using hashes here.

File details

Details for the file avioflow-0.3.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for avioflow-0.3.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6dca21eaac9f6667efd2b190b2470f96ca54fcb54cf2a9087e6b1452bdaf0ade
MD5 48c3e9139395a50397a83bf7805c8675
BLAKE2b-256 ecc90eecd7b59d92decd26eceb9447eff1d43f5c1ef5995959d7eda16e6783a2

See more details on using hashes here.

File details

Details for the file avioflow-0.3.5-cp310-cp310-macosx_12_0_x86_64.whl.

File metadata

File hashes

Hashes for avioflow-0.3.5-cp310-cp310-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 8a18c36b7daa0344d25917855cd9aa454063320aff42a44631fe9dd7aab6f936
MD5 5622800155359c5578a441ebabfcb6cb
BLAKE2b-256 93530e5f4a58d7c2323b8c634cc4966e2d755fc4bf47afdb1050b16117707322

See more details on using hashes here.

File details

Details for the file avioflow-0.3.5-cp310-cp310-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for avioflow-0.3.5-cp310-cp310-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 e7c23d0663bc181d94943c45bd82466d437cef96060b7141817f8a7ee2204c0e
MD5 5f49e72a58b2eb6c40d750184590eb6f
BLAKE2b-256 13f897bd3ac03c5235ae9718a2630ab4126bbebd17f06b048cc4b9ee7427447a

See more details on using hashes here.

File details

Details for the file avioflow-0.3.5-cp39-cp39-win_arm64.whl.

File metadata

  • Download URL: avioflow-0.3.5-cp39-cp39-win_arm64.whl
  • Upload date:
  • Size: 6.7 MB
  • Tags: CPython 3.9, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for avioflow-0.3.5-cp39-cp39-win_arm64.whl
Algorithm Hash digest
SHA256 0c7c4c698e69231ab65dfc2c0ced1f856407638508ac91218aace2d1145d5660
MD5 ec2aee2e9188fa2e649642522609d583
BLAKE2b-256 793704a552cdd788eba61182c372b25824e3e9902f928a53825ed81538219c6a

See more details on using hashes here.

File details

Details for the file avioflow-0.3.5-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: avioflow-0.3.5-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 6.9 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for avioflow-0.3.5-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 3ecc4632a1fefbf3dd0c7daefcd7275fef4e55972fe69ea6d396cd87cd06ed9c
MD5 ed213b24e3b3e951473ef970feb37537
BLAKE2b-256 ede71c5c6dbe08de5acae0ef88a9f49e3d351d97431d49b80f1d23e7b0c694fd

See more details on using hashes here.

File details

Details for the file avioflow-0.3.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for avioflow-0.3.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c9eab97c7cd17fcbfdd39af89daa4264ccf0fba6e27d2065a06b13f46b97e121
MD5 b630339bd335327f1708077d068f1ff8
BLAKE2b-256 a1329e2c79f69cfee11e3f77b41f071a746a7c51f9283a054d9d1192d166ed4a

See more details on using hashes here.

File details

Details for the file avioflow-0.3.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for avioflow-0.3.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 84a4e6608396d6b95c120ff959db0feecbb348f620887443f59313b391bd290b
MD5 529239115bd45bb0e8340c35f17fe8d5
BLAKE2b-256 27467b29b6e9a02def50641d621422d91271e829d5432da864b78fac9bce21c2

See more details on using hashes here.

File details

Details for the file avioflow-0.3.5-cp39-cp39-macosx_12_0_x86_64.whl.

File metadata

File hashes

Hashes for avioflow-0.3.5-cp39-cp39-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 6029744f62ac1de74936c747e8d9f7532813cc824e9b3a940cce30055954ecd8
MD5 fb223d3d31dc73f36519fa2dfc148673
BLAKE2b-256 55c15a2876d54f6f84f748de2091634dfa053e73cf62f37e1174b06ffd949cf2

See more details on using hashes here.

File details

Details for the file avioflow-0.3.5-cp39-cp39-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for avioflow-0.3.5-cp39-cp39-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 5a22ab3511b109041e865db854a05badac76181f239eed4592a5f4d8ec7b4155
MD5 a2d9142edde05f4476c472d77d540b43
BLAKE2b-256 86d15468b4b3cb19a002f349899e858da0efa99909a9131dd19ae4ec329b61df

See more details on using hashes here.

File details

Details for the file avioflow-0.3.5-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: avioflow-0.3.5-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 6.9 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for avioflow-0.3.5-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 fa1fbfc8828b1a87a69a287467f81c744e3be62dd4065b3b7eb897029258e72d
MD5 427e702647ccf0cdb3789719feea69d5
BLAKE2b-256 9840acac3ea161e063bdeced05f7ded5004130a9bf50865b585ae1feb4f91e41

See more details on using hashes here.

File details

Details for the file avioflow-0.3.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for avioflow-0.3.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b29fe7843fd094129d61782e669d1cd7b8b533416800d0ccc625c4e505c46b1f
MD5 a9860d0a0092edbdccc3fb205dba578d
BLAKE2b-256 3a24fe2cde65a4be51a885a9c7816e0402cddb97fa9beb44bf2f9c079eae137a

See more details on using hashes here.

File details

Details for the file avioflow-0.3.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for avioflow-0.3.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2acdca4d282f107c8bf7fbe5fcea7da28b3ee3663973d91a61ac0021a99b73e6
MD5 01af09f5a0fd4f93138c7f56b0d7d1cc
BLAKE2b-256 cd96dab91bdfb4091323774f108a2d14c4b82266f9b80b088099c487d32bdc71

See more details on using hashes here.

File details

Details for the file avioflow-0.3.5-cp38-cp38-macosx_12_0_x86_64.whl.

File metadata

File hashes

Hashes for avioflow-0.3.5-cp38-cp38-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 06b52b4f92fec3f99c2b32d614ee1f9dc9a119ecc63efeb45f510375285742f6
MD5 0a47380d5835e2a6f1549dea3fa07ead
BLAKE2b-256 a75dcdd0a7da7f49d9b0cf3fae49c03d0665889d50e8fe07e12587a60ce17ef0

See more details on using hashes here.

File details

Details for the file avioflow-0.3.5-cp38-cp38-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for avioflow-0.3.5-cp38-cp38-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 69fc9499dfa0fc504eaf43783595046d4cf74b4ad8d7242cf2b2f7c0130ea0d5
MD5 4a8615f11a6c7ce0f153eb1f9c01a486
BLAKE2b-256 a2e9769d21a7b7f6058a7e7135cfe2e5921b95b98cc888311e57db8e98fcbbf6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page