Skip to main content

Python bindings for Yak — yet another kontainer. A layered, embeddable file-in-file storage system.

Project description

An icon of a yak coming out of a square

Yak - Yet Another Kontainer

Yak is a library that helps you to easily build your own binary file formats.

Yak is a bit like the Compound File Binary File, but without the legacy.

Yak is a file system, inside a file:

  • A Yak file can have many streams.
  • Organise streams into Yak directories - stream names cannot clash inside the same directory.
  • Treat streams like you would files - write to them, read from them, truncate them, delete them, move them (inside the Yak file).
  • Streams can grow or shrink inside the Yak file - Yak will figure out how to organise it efficiently.
  • Seek in streams with O(log n) efficiency due to Yak's pyramid storage structure.
  • Streams can be optionally compressed - Yak handles this transparently, compressing and decompressing as you read and write.
  • Yak files can be optionally encrypted - Yak handles this transparently too, encrypting and decrypting as you read and write.
use yak::{CreateOptions, OpenMode, YakDefault};

fn main() {
    let path = "example.yak";

    // Create a new Yak file with default settings
    let yk = YakDefault::create(path, CreateOptions::default()).unwrap();

    // Write a demonstration text buffer
    let s1 = yk.create_stream("hello.txt", false).unwrap();
    yk.write(&s1, b"The yak does not speak, but its presence speaks volumes.").unwrap();
    yk.close_stream(s1).unwrap();

    // close the Yak file
    yk.close().unwrap();

    // Read back the text stream
    let yk = YakDefault::open(path, OpenMode::Read).unwrap();

    // we stored it as "hello.txt" but you can use whatever
    let h = yk.open_stream("hello.txt", OpenMode::Read).unwrap();

    // Read into buffer
    let mut buf = vec![0u8; 56];
    yk.read(&h, &mut buf).unwrap();

    // We've shown text here, but you can write all types of data
    assert_eq!(&buf, b"The yak does not speak, but its presence speaks volumes.");

    yk.close_stream(h).unwrap();
    yk.close().unwrap();
}

Yak is implemented in Rust and published on crates.io but can be used in many languages:

  • C/C++ via the included yak_c library, which builds to a static lib and a .h file using CBindGen.
  • Python via yak_python library, which is published as a PyPI wheel, using PyO3 to create native Python bindings.
  • Any language that can use C libraries (dynamic or static), such as Objective-C, Zig, D, Lua & LuaJIT, C#, Haskell, Node.js etc.

Ready to go

Yak is reasonably well optimized and pulls a number of tricks to balance these desired features:

  • A simple, name-based filing system.
  • Automatic space management - even after you've written a stream and closed it, you can reopen the same stream much later and write more stuff to it.
  • Fast seeking within streams, without holding lots of extra data - the underlying pyramid data structure wastes very little space and is still very efficient.
  • Minimal disk IO - Yak will optimize for long, contiguous segments of data to get near-raw-buffer reading & writing speed and use a configurable write-through cache to avoid disk IO altogether for hotspots in the file.
  • Thread safety - multiple threads can write to multiple streams at the same time.
  • Endian aware - if you need a Yak file to move between little endian and big endian systems, it can.
  • Transparent, fast compression - using LZ4, any data written to a stream gets automatically compressed and any data read gets automatically decompressed.
  • Transparent, fast encryption - using AES-XTS with hardware based encryption/decryption (where hardware is available).

... but due to the architecture of Yak, you can optionally write a new layer that rethinks how streams are linked together from blocks, how blocks are handled and how streams are addressed. By default, Yak is ready to go, but it can also be a toolbox for you to do something custom. Yak includes a broad test suite (~200 tests) that'll help you stress-test anything custom you write.

Yak includes a command line utility to create, modify and optimize Yak files.

~/yak-test> yak create testfile.yak
Created Yak file: testfile.yak
~/yak-test> yak put testfile.yak test3.mp4 test3.mp4
Imported 64435159 bytes from test3.mp4 to test3.mp4 (4875.2 MB/s)
~/yak-test> yak putc testfile.yak test6.md test6.md
Imported 4283120 bytes from test6.md to test6.md (compressed, 182.3 MB/s)
~/yak-test> yak ls testfile.yak
STREAM test3.mp4
STREAM test6.md
~/yak-test> yak mkdir testfile.yak "folder1"
Created directory: folder1
~/yak-test> yak put testfile.yak test5.pdf "folder1/test5.pdf"
Imported 51739870 bytes from test5.pdf to folder1/test5.pdf (6122.1 MB/s)
~/yak-test> yak ls testfile.yak
DIR    folder1
STREAM test3.mp4
STREAM test6.md
~/yak-test> yak ls testfile.yak "folder1"
STREAM test5.pdf
~/yak-test>

In addition it includes a broad benchmark suite you can use to understand Yak's default performance and the performance of any customised layers you build:

~/yak-test> yak bench
Usage: yak bench <scenario> [--block-shift N] [--index-width N] [--cbss N] [--threads N] [--case CASES]

Each scenario runs once per selected case (default: all four).

Scenarios:
  large-write      Write 5 streams of 30MB each
  small-write      Write 180 streams of 10KB each
  large-read       Read back 17x10MB + 17x20MB (510MB total)
  small-read       Read back 2750 streams of 10KB each
  threaded-write   T threads writing streams concurrently
  threaded-read    T threads reading streams concurrently
  threaded-mixed   T/2 readers + T/2 writers concurrently
  churn            Write then delete many streams (5 rounds)
  reuse            Fresh vs recycled-block read throughput
  single-stream    Write + read one 64MB stream (contiguous I/O test)
  warm-read        Write then read 2750x10KB streams (same instance, warm cache)
  overwrite        Write 10MB then 5000 overwrites (compress/decompress stress)
  all              Run all scenarios in sequence

Options:
  --block-shift N  Block size as power of 2 (default: 12 = 4KB blocks)
                   Examples: 10 = 1KB, 12 = 4KB, 16 = 64KB
  --index-width N  Block index size (default: 4 = 4B index / 32 bits)
                   Examples: 2 = 2B index, 4 = 4B index, 8 = 8B index
  --cbss N         Compressed block size shift for compression (default: 15 = 32KB)
                   Examples: 13 = 8KB, 15 = 32KB, 17 = 128KB
  --threads N      Thread count for threaded scenarios (default: 4)
  --case CASES     Which cases to run (default: necb = all four)
                   n = normal, e = encrypted, c = compressed, b = both
                   Examples: --case nc (normal + compressed)
                             --case c  (compressed only)

Yak is not ...

  • A database - Yak thinks in binary only and doesn't care or know what you write to your streams.
  • ACID compliant - but then neither is your homegrown file format (most likely). If you need Atomic, Consistent, Isolated and Durable writes to your file, you should choose a different format. Yak does include functionality to verify the integrity of a Yak file.
  • An archive format - To optimize for speed, random seeks within streams and mutability of streams, Yak will not achieve the same compression ratio as a modern archive.

... but Yak could be

  • How you save your app's data
  • How you load your game's assets
  • How you compactly receive a bunch of streaming data
  • How you rewire that other library's file-spew into a single location
  • How you get started writing data to a file, until you've got that perfect, custom solution
  • How you handle a number of threads writing to the same file, at the same time
  • An alternative to rust-cfb

Want to know more about how Yak works?

Read the Architecture Overview

Quick Start

Building

# Build all crates (library, C FFI, CLI)
cargo build

# Build just the CLI tool
cargo build --package yak_cl

Testing

cd yak_pytest

# Run all tests (thread safety tests burn for 10s by default, but you can override)
python -m pytest tests/ -v --burn-seconds=1

Project Structure

yak/             - Core Rust library (L4 + L3 + L2 traits and implementations)
yak_c/           - C FFI wrapper for language interop
yak_pytest/      - Python bindings and test suite
yak_cl/          - Command-line tool
docs/            - Architecture and design documentation
graphics/        - Yak logo

Mock Backends (for debugging)

Yak includes a couple of supporting debugging layers to simply development of your own file format, should you choose to fork.

  • YakBlockFileBacked = Yak<StreamsFromBlocks<BlocksFromFiles>> -- L2 mock (numbered .block files)
  • YakFileBacked = Yak<StreamsFromFiles> -- L3 mock (numbered .stream files)

Project details


Download files

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

Source Distribution

libyak-0.10.0.tar.gz (74.8 kB view details)

Uploaded Source

Built Distributions

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

libyak-0.10.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (468.9 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

libyak-0.10.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (454.6 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

libyak-0.10.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (449.6 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

libyak-0.10.0-cp314-cp314-win_amd64.whl (306.9 kB view details)

Uploaded CPython 3.14Windows x86-64

libyak-0.10.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (465.3 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

libyak-0.10.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (450.1 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

libyak-0.10.0-cp314-cp314-macosx_11_0_arm64.whl (416.5 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

libyak-0.10.0-cp314-cp314-macosx_10_12_x86_64.whl (428.9 kB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

libyak-0.10.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (449.9 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

libyak-0.10.0-cp313-cp313-win_amd64.whl (307.1 kB view details)

Uploaded CPython 3.13Windows x86-64

libyak-0.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (465.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

libyak-0.10.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (450.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

libyak-0.10.0-cp313-cp313-macosx_11_0_arm64.whl (416.6 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

libyak-0.10.0-cp313-cp313-macosx_10_12_x86_64.whl (428.7 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

libyak-0.10.0-cp312-cp312-win_amd64.whl (307.3 kB view details)

Uploaded CPython 3.12Windows x86-64

libyak-0.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (466.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

libyak-0.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (450.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

libyak-0.10.0-cp312-cp312-macosx_11_0_arm64.whl (416.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

libyak-0.10.0-cp312-cp312-macosx_10_12_x86_64.whl (429.1 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

libyak-0.10.0-cp311-cp311-win_amd64.whl (308.5 kB view details)

Uploaded CPython 3.11Windows x86-64

libyak-0.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (468.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

libyak-0.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (453.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

libyak-0.10.0-cp311-cp311-macosx_11_0_arm64.whl (421.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

libyak-0.10.0-cp311-cp311-macosx_10_12_x86_64.whl (431.9 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

libyak-0.10.0-cp310-cp310-win_amd64.whl (308.4 kB view details)

Uploaded CPython 3.10Windows x86-64

libyak-0.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (469.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

libyak-0.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (453.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

File details

Details for the file libyak-0.10.0.tar.gz.

File metadata

  • Download URL: libyak-0.10.0.tar.gz
  • Upload date:
  • Size: 74.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for libyak-0.10.0.tar.gz
Algorithm Hash digest
SHA256 faf219f30638a4abd8096f449a8fc58bbf7ff77be543fad38bc246a592b62862
MD5 3af06a01369528eed12413838806fb32
BLAKE2b-256 55075003469e9926de9544041732b163edb290fe11ab44f156264a2fee3c350e

See more details on using hashes here.

File details

Details for the file libyak-0.10.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for libyak-0.10.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c0a27f12e84804056ecc9bb8b982aba6b06173611744512daf67a1963b938a5f
MD5 8a743c6afbfa89733da8bc8347ef40d0
BLAKE2b-256 6f0b223409d59d88ba1a01f7dc7772ee1be7fec1dbd2d54f7c2c5c43d1f68704

See more details on using hashes here.

File details

Details for the file libyak-0.10.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for libyak-0.10.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8b6d78a68ea3ce8df0238345e1d9a447052f0d5ca5fcea6a20c6b4c79815ab96
MD5 ec3e1dc74e009d7a0b0e91716a4aeb7f
BLAKE2b-256 8b2970371a61dcbca71dc0b593b1ab6592f2b85e7170077e7ae550f6b8882d64

See more details on using hashes here.

File details

Details for the file libyak-0.10.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for libyak-0.10.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 377baeea8c23fd53002d4d57df4d70a12b65f42953dc87710016546beb46bc0f
MD5 ba19796844aa4b63dcf82d96c28cabe3
BLAKE2b-256 3ff13789587342d17fc524e024417836f7868429fa5f738e6434f1845057b0fe

See more details on using hashes here.

File details

Details for the file libyak-0.10.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: libyak-0.10.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 306.9 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for libyak-0.10.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 ea24f9935fd6f33df5c1840503ae10084cce9888919a0df4f747747b1595a936
MD5 49ac6665df5091da1db67304d84d70c1
BLAKE2b-256 c5f3486e16a3250f3c9c13edfa7a3b539f55d60d542d47eeacc6b4dbb3488ca9

See more details on using hashes here.

File details

Details for the file libyak-0.10.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for libyak-0.10.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 599c51af68230bba7e8087f8476179e4cdea8711959822f9a484ff636c9acf32
MD5 d7dde3ffc64eab2dc2a0678d914edfc5
BLAKE2b-256 a51abeae078622d05d01494309ac0771e7a5345b68825ae7d9849141c71c4a76

See more details on using hashes here.

File details

Details for the file libyak-0.10.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for libyak-0.10.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e49201467715c7efc62d0cb194ac2721d815a84f6c99a0c6476ff863b183568c
MD5 86362a8c40b661437b3c70652a892f71
BLAKE2b-256 875e65eb5d92ca89ee0e4ac9c87c3ace7a108513866cdf82cfc4b35d43df77f0

See more details on using hashes here.

File details

Details for the file libyak-0.10.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for libyak-0.10.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0e9cb07dd27d31b3d60169db39b669fa730e738ab3f798b54001f0e949b35a00
MD5 8f448828f85fce95d8d88fc9d25fdd22
BLAKE2b-256 ee6253eb10d04abb67174465b56754514b0a787abf5ae3ea81d6203864f76f44

See more details on using hashes here.

File details

Details for the file libyak-0.10.0-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for libyak-0.10.0-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 104f31853cb5ddf6740f028b2771e017ee708a7cc7e4ce3f63089b2f2ca3fda6
MD5 c63acb4ace3939a14f04d1c275f16a5a
BLAKE2b-256 c938e09613066ee96e3c116933855b14221b6fe212cafd6bd5efbd7d9d0a0747

See more details on using hashes here.

File details

Details for the file libyak-0.10.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for libyak-0.10.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 262043767fa183a1c6478bdedd6798d27747cad2fc844ceaff825be438baeb13
MD5 e9769320a834ce00234a41372f93f5b7
BLAKE2b-256 16a876118faa70c9da6bd8b1ea45c7beedea0b728a0766225529e2ad2dade658

See more details on using hashes here.

File details

Details for the file libyak-0.10.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: libyak-0.10.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 307.1 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for libyak-0.10.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 5468eab6c7f2112c3aa04f7b0c1efd4c720284e77c5ee4d612e89658ab540124
MD5 b39c61502ca009dca319ba9696ffb8b6
BLAKE2b-256 719e7d34efe299398b65a2fbf423fb1ad8a5ca172a6a49002064dfdb1eb453b1

See more details on using hashes here.

File details

Details for the file libyak-0.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for libyak-0.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f02f16010a5cb2bb7f1332be84768f2a235fd5c00cc5bf2e5ab7ca6089b2de62
MD5 9a5957e7380102c325977814fb5a311c
BLAKE2b-256 44028f5c316a7413a9271102ba44763114500376d33af3bd67387a237abbc57a

See more details on using hashes here.

File details

Details for the file libyak-0.10.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for libyak-0.10.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 02b1bcd64d4b45808dc872e1af50cc00852ef37a32d0fdb98dd5acd37dcbf027
MD5 918571a39cedb28d0b375d6599e72293
BLAKE2b-256 94cbf113098aa94b31eb967f108cadfebbae0147e6da6c45d958687bff7874c7

See more details on using hashes here.

File details

Details for the file libyak-0.10.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for libyak-0.10.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5f17c726743ed9c2ebc79c2d57fd54aabb52936a8ec475fe60e2d400ae838691
MD5 90b3710361bcd87552dd63827847b834
BLAKE2b-256 c47d1963be27090fcbd014aaeac0ff2b512f3af169611df3b1567bf4e6a393d8

See more details on using hashes here.

File details

Details for the file libyak-0.10.0-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for libyak-0.10.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 db2628bf297fe9b3bd4ff18c9fab6db9a7bdb1f7bffe86ca987e4083499e955a
MD5 d214fe903db776ad286f312dcdd895d3
BLAKE2b-256 d91b5538d951b4900a764f3bc6f85b70829e8c48ed36783c4e0d536c7f75a799

See more details on using hashes here.

File details

Details for the file libyak-0.10.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: libyak-0.10.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 307.3 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for libyak-0.10.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 fe91375464a0395be18a9218714767b8c447c78b9f8995393eeb9476359e7804
MD5 f63c4bd95fb23f213c3b2aa05b9a1ce8
BLAKE2b-256 5023a0ec8503c7f559b21ffa1f9d3a8fdb5c92d588ecb35f58100422ef837022

See more details on using hashes here.

File details

Details for the file libyak-0.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for libyak-0.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f9826340071ae2fada88217cadada1bc480694c5254d264c874a58692ff17c83
MD5 1c2a81fe225018edf88552ba3ba175f5
BLAKE2b-256 e503dda551515d584bb071c18e6b6fd7c96d03f33a9f8a46854429e49637954c

See more details on using hashes here.

File details

Details for the file libyak-0.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for libyak-0.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b768b3e2575da8cbb2fc8d4bc7d5966cb20aa7d5e8e9b63d06acc58b18c53aad
MD5 c0634595b7424336c962714f7dc227a6
BLAKE2b-256 5b79b5cd6cddf2f8691c0b8ca5adbd7c9c1d0b7f7385ef12cca5bc9d1cefdc6a

See more details on using hashes here.

File details

Details for the file libyak-0.10.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for libyak-0.10.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 72449124dfbb42ccda12a3af4205a3b0cae5d5ebb4c6e7c30613775097d52d71
MD5 7352dffabb299001687935899c491126
BLAKE2b-256 b64fbac4d11f167fdc37f163a78bc4422632ff3f157a388fa66c3c5495be8745

See more details on using hashes here.

File details

Details for the file libyak-0.10.0-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for libyak-0.10.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 877f81e0ad28aff9451b2d1b125d1b5dcc84817539cca589863fcebe81e427ef
MD5 9ac21a482d59eb832880428d0507bcb9
BLAKE2b-256 6113a7fafda8e133a36571a71d25629fed17ee9fcb919a46e425cc0f02db7e79

See more details on using hashes here.

File details

Details for the file libyak-0.10.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: libyak-0.10.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 308.5 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for libyak-0.10.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 807f095eddbfd4796307a55b7952187c3a1466a2e66c223f764d59282d22d37b
MD5 22d15c93977866e9a120cdd9540da01b
BLAKE2b-256 3729a0628f7acb9d2148ff11ad6586d6b50e574ce29c53f9f6bcdd9a267faafc

See more details on using hashes here.

File details

Details for the file libyak-0.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for libyak-0.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 288e88d1c29160c5b2e55c019a1698df59fadfdc69fa34bdb204731b36ca328e
MD5 1419a244f9cb8cf57747bd7c792cd4f1
BLAKE2b-256 e04280512e0821f92646553551d5e3473c2fd7e22fe95d52b2a403c2952a2eb3

See more details on using hashes here.

File details

Details for the file libyak-0.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for libyak-0.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2bcb50c24874616d527852f148ed6c43ff0c0a7d2a2972f0f3c7e9403597c07d
MD5 27f45d72b115a05e377d0529cabd584e
BLAKE2b-256 8d8ca71902c54c92a0fd4542691a145805b921845b2e46c8f76b4915332b7613

See more details on using hashes here.

File details

Details for the file libyak-0.10.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for libyak-0.10.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 01421a727eabf28a81876a495ebc03981836413d364fe5606f7fcb808764ba47
MD5 98fcd06e1e05535515fa30d4bcdf4525
BLAKE2b-256 9e5f612fe69c287b99bdd98c25d406069c54287839a37630d280e31c727bc2b1

See more details on using hashes here.

File details

Details for the file libyak-0.10.0-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for libyak-0.10.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 55133240842a528208c11fabea3443ffa887112e1be42286922dcac64208d6f1
MD5 ce8c37ce514f8bbee5d4201be57745f0
BLAKE2b-256 14910d995cea38677b429eb9e01213b7c762546dff8a9ad53e56d52d92701b7d

See more details on using hashes here.

File details

Details for the file libyak-0.10.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: libyak-0.10.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 308.4 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for libyak-0.10.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 3b04f61fcba7a1e625540244c4aa2f9dc951f5a47644b4da74777613cbcf64bb
MD5 0b958b88f53e4d975de2822d9da80bd3
BLAKE2b-256 1c47b85d7939b0d9f2cac37663d03275749cb2008e47e78e8c602c16b3a6ce57

See more details on using hashes here.

File details

Details for the file libyak-0.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for libyak-0.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 40ddb794452cffc27d12dbd6995d92db39adbc61982a22ec8389584d236f35c4
MD5 7173718b78fcb79155a7a3374857072e
BLAKE2b-256 c61708132d9b3812f94e7bd44125c7f24b12efb4c945e4b0caeeeb172ac2d712

See more details on using hashes here.

File details

Details for the file libyak-0.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for libyak-0.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3478fee7ebebca3f5d5fe75f119f1b8edf8559fb7b3b6d31c1221b6bc3fa0cd8
MD5 04c70bb11b8a3c606e21d5d3d6255867
BLAKE2b-256 cb484562a37792bd298e7c0e38bfff0a677778e2ce656efa1bb9ed0140ce5a08

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