Skip to main content

Python bindings for Yak. Yak is a modern container file library, useful for quickly building your own binary file formats. A file system in a file, focused on performance and ease of use.

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 Format, 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.
from libyak import Yak, OpenMode

path = "example.yak"

# Create a new Yak file with default settings
yk = Yak.create(path)

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

# Close the Yak file
yk.close()

# Read back the text stream
yk = Yak.open(path, OpenMode.Read)

# We stored it as "hello.txt" but you can use whatever
h = yk.open_stream("hello.txt", OpenMode.Read)

# Read into buffer
buf = yk.read(h, 56)

# We've shown text here, but you can write all types of data
assert buf == b"The yak does not speak, but its presence speaks volumes."

yk.close_stream(h)
yk.close()

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)
  dir-lookup       Open 1000 streams by name in a 10000-entry directory
  cache-pressure   Random reads under cache-invalidation pressure (threaded)
  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 get started writing data to a file, until you've got that perfect, custom solution
  • How you save your app's data
  • How you pack and 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 handle a number of threads writing to the same file, at the same time
  • A higher performance 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_cl/          - Command-line tool
yak_python/      - PyO3 Python bindings (published as libyak on PyPI)
yak_pytest/      - Python test suite
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)

Convenience utility

For users of Total Commander, a WCX packer plugin is available to operate on Yak 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.11.2.tar.gz (83.7 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.11.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (564.2 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

libyak-0.11.2-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (546.2 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

libyak-0.11.2-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (541.6 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

libyak-0.11.2-cp314-cp314-win_amd64.whl (374.5 kB view details)

Uploaded CPython 3.14Windows x86-64

libyak-0.11.2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (560.4 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

libyak-0.11.2-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (541.8 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

libyak-0.11.2-cp314-cp314-macosx_11_0_arm64.whl (498.5 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

libyak-0.11.2-cp314-cp314-macosx_10_12_x86_64.whl (511.2 kB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

libyak-0.11.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (542.2 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

libyak-0.11.2-cp313-cp313-win_amd64.whl (374.8 kB view details)

Uploaded CPython 3.13Windows x86-64

libyak-0.11.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (561.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

libyak-0.11.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (542.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

libyak-0.11.2-cp313-cp313-macosx_11_0_arm64.whl (500.3 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

libyak-0.11.2-cp313-cp313-macosx_10_12_x86_64.whl (512.8 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

libyak-0.11.2-cp312-cp312-win_amd64.whl (375.1 kB view details)

Uploaded CPython 3.12Windows x86-64

libyak-0.11.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (562.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

libyak-0.11.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (542.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

libyak-0.11.2-cp312-cp312-macosx_11_0_arm64.whl (500.7 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

libyak-0.11.2-cp312-cp312-macosx_10_12_x86_64.whl (513.0 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

libyak-0.11.2-cp311-cp311-win_amd64.whl (377.1 kB view details)

Uploaded CPython 3.11Windows x86-64

libyak-0.11.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (564.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

libyak-0.11.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (545.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

libyak-0.11.2-cp311-cp311-macosx_11_0_arm64.whl (500.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

libyak-0.11.2-cp311-cp311-macosx_10_12_x86_64.whl (512.9 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

libyak-0.11.2-cp310-cp310-win_amd64.whl (376.8 kB view details)

Uploaded CPython 3.10Windows x86-64

libyak-0.11.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (564.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

libyak-0.11.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (546.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

File details

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

File metadata

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

File hashes

Hashes for libyak-0.11.2.tar.gz
Algorithm Hash digest
SHA256 57bc07458a7761bd4013799751a32fb9ef0befe0e2a93368287ef80a6595db59
MD5 a6e269d744cbfa7f12042aa679e5a3db
BLAKE2b-256 8c9d355f2179711f568ce3d62a6e86566f904bcefdf804b460f268909faf80fb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b63c9e7d3aebad6ad47ca12d3d8b4d7832a0485de4f390431c3c79c8cdf7476d
MD5 d0ed8f93b1c5fa136cf0db1002580fc0
BLAKE2b-256 9325eebcdf1396318410b0f1c82880b12836ec2042a00370052904c2f3aa5afc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.2-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4a29d8577fb7811b531361b542a633febfa3f8498215e33850c62038feb142e8
MD5 911ff96f9e444d6e6d9d64e0c3c71d3a
BLAKE2b-256 e557565ba277d5aa3f6438ff3054754d87170594be9c7a86ccfdfe5d22ae7a18

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.2-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1cb31252690b7ef7bc1adf5077e554105d34f3a01f487614cc4a2cb93753ba74
MD5 cc54dc8f2d39ad53d6d9f11f7d38541a
BLAKE2b-256 8b181e52940adeea924ac1c96c35721e578809109f5d94e6edf7da001162a696

See more details on using hashes here.

File details

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

File metadata

  • Download URL: libyak-0.11.2-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 374.5 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.11.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 ee47cee5de3990e6005193d57c8fa63ec685644e4067ff788d478d6410d72680
MD5 23fe71005431e0d13baaadb9a70fb5b7
BLAKE2b-256 85f088c7e135a37688dc45d5f3722c75c54c68a29a2d04017aff3272d8ee58f0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 44dc0d25a2e82b1206b255058d539a76e9c0fdebdd7b898a199aa3a431776074
MD5 1d41cebeb78795aad6b1a4cf67713f23
BLAKE2b-256 d53aa7dad813c76c39c5fae09d1b95536bef878cb0f62e1aaaab86d8f54f0721

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.2-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 73c6df70bd67a976599b9b4dd2ca9b8d9f7bd2ff2b5d39ee7e4683d6a3ed0472
MD5 810b5d49d28bfb21b1080ed982dd85e6
BLAKE2b-256 165d2bec1a91e2b2d7b8ac75e72554c8b3878c5784ca304fbe3aee4387cf58f2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 78349ce3a5711396acd86bee0f30bd124527cbc3aff344b5c7177b7832af73a3
MD5 96c7bdd70a52e05f9d52a77eae915665
BLAKE2b-256 18fde23fe6873f1e7ac91ae6bc0c275b2e79bb14250651d8a6f6e6596b135cce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.2-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3b3b58154c18e4e38959f9a386bb9e8fe553f6224734dfb42381bf560fac4e12
MD5 faf00edb77999434108fc59a273b739e
BLAKE2b-256 66a40c512023a742ad1a43cbf94dcfd6647bb5032be6eeb6e5b8e93ab84135d6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fccae3248d1d534b1a242805b80b70df5a02d25e4e2c30f017abb6be3f7edd58
MD5 5e0c5c4a144ae1d6a181e546b4bcf6e6
BLAKE2b-256 b1f70102227ca74a09e2d1dae1521c7b5659a9881df705aa35b15d621ec9dd68

See more details on using hashes here.

File details

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

File metadata

  • Download URL: libyak-0.11.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 374.8 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.11.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 0b850d2e9ae4f7ec70b2f6d79915124fa289d93a05efd6beaed8b64dfe5c7196
MD5 93da527b47c5bbd6cafeb45289c98cf3
BLAKE2b-256 2457f267ffd85ac18636293d68ca35b19d0d502cfc654ecb9d9a8fde9e223486

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8fee9ce2893d5ff0fdb776bc383b5e33314ed1dd60feaca05b5f9e5592a7ab8d
MD5 83dbb668665ac71bfb441d153b24f1b8
BLAKE2b-256 62e25c576f9768f8134f996dea624a403b76c0e9badc39543cf94292961f618a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 495a7ef09b6c9a1f003126fda58faf6e8d727c7b9a3e020c43e0827f42de24a4
MD5 33a1d73e5e68eac61085861e6e7e513a
BLAKE2b-256 848a66a384d84af61727f8c1098cc0270f70b5c05ea8e5425a1da70ca32bda3c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e8087fc331d2877e3ac8c9b07d5022841784025dca3f7afff15bdd632e1d236e
MD5 0c5b5b141c67d5dd80c910150b2a6a2c
BLAKE2b-256 3c1d808b7cdf9789609478a6bc70c300b71138216a206b735ed9e2e5a265bc52

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.2-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1012396a7a01844a7f646596d99fdfb340f69efb916868bc2c1c0dd33bf553ca
MD5 ed79c07d18d5345ed09b66b4d417290c
BLAKE2b-256 ff1144f1e9b295d18711d781a4eccf2a76e05c700594b400d54d0c228f014873

See more details on using hashes here.

File details

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

File metadata

  • Download URL: libyak-0.11.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 375.1 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.11.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 d7e4a937612780caf94f1c70581c46789bfd382d5046c049a3c701019e96af62
MD5 9740475fd73a2e627c18959ff8b1a705
BLAKE2b-256 f1eb724de58f74cbe2f7a9c5defb4aac1682f333d6b8263ebf7b84c88bffa74c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 670805a003149ee7a221702e14fce92fd63dab13259bb55802166596f17c481b
MD5 15e76cb28818a3cc32333a2261f40db9
BLAKE2b-256 f07d540d1e6198bf2236231c3b1076dbfb61033f2e981a1c00c5ff2279761fa4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 218dcb9fcb5f4855cabace76f24264234ca790d94412de02424dea44111511c0
MD5 6ac7d18f408c5bebbc97aead1b2ea97d
BLAKE2b-256 c16a63979148dd2e984e05007c2dd3bd4922fd51d408f9cc82f4c78043d68d8f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 815524304ff5249d1be03a538f923866162fb9bd99504817f96ff7c42622f66d
MD5 ce7abc23fdaf1e490d3275d90641e68f
BLAKE2b-256 acca2b4eb67bb705e13ef24c3f5f6d1b807fdf74d7af47bb035799071482cae2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.2-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 065980d239e0cdba296bc0d92b4f8e612ceea8fe7931e04b8d576d5b77d28505
MD5 8702aa8d3e7bc8c323f3c6020e966f28
BLAKE2b-256 c88bc1c58fe83133ca55bbd697f2141d1b760943920945d23c86fdff4d54143e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: libyak-0.11.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 377.1 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.11.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ec0f1dd1e9d7038fb51d290872631042fd5dcc35ee3cd8ca55fbb779a842a3ef
MD5 b718f0a2a879d868517b376b43b96ee7
BLAKE2b-256 2b16b9c22609ad2950caa408ee8dca79eec1c6d1d9294b922e2f60d96ad86015

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 70f824ad7c9971a128b57fa6b5072a49a5bb57e7ef6e64ae263816bc163e11dc
MD5 3096fee2f12e4d54123c73bd350f4efe
BLAKE2b-256 325a6e5ab75a17af6bd29d062c1f35b03f0d0e41ac8dfdaa725ce917003bae6f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b2f49124fc609d22cdb33b3fe4839a829fa9943db29a0a6e8d4701cd79b12f7f
MD5 86f72beb16adaa64eb5fa599995fb474
BLAKE2b-256 e9a86e2ab83b578b47a7b8ad96a1c434d85d4b37eea717b467107415d2a10ac1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 502094254e562d52b7c7657cb90d20a148a0afd184109680ed45670e584c76d8
MD5 e8314ffb7af28e99c39c3b71f4e02da1
BLAKE2b-256 c9928b5887316cf126b327eedaf6e602eed501a2dd79782e7a40f9f736e36a7c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.2-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7cd19395594e54c39726b635d94afbb6dbe5e17cfe2df81c53fe4a8b3e333843
MD5 569b6da5508b313055760387a181361d
BLAKE2b-256 3a46baae194cd5378ee14d1b41490c5471316fe4766b1336376ad7896bf090cb

See more details on using hashes here.

File details

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

File metadata

  • Download URL: libyak-0.11.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 376.8 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.11.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 359e946e9c0b50787aa55ca4adf89805f2a29cf24a4d1f3e16b0e6f1f2991e66
MD5 d6e1f8bbcf3161a30204c469c1b400ca
BLAKE2b-256 f4984dd3c60902ab84b44c133c61010091169969e326f880956128c865d7b7ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9b5957e5bdc9e7bffcc7e5ddcdcfe6940ad030dfd511d99814d4d035041e5188
MD5 7ced9e158b75cec176fa79524e8ea455
BLAKE2b-256 19ddb9c46fb73c9d6e3c85eacb756cb580d80cb73fa1837fa9da55ad672865e7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 bbc307eb33d64526b62c9ac8bf80d0f3f87194e4dda0c806bc16eaea5afc316b
MD5 f044d8b95938bc54130de072f8f3ae1c
BLAKE2b-256 4cc9012eff0a98f2743e22b8f5c6fb0ff2550562db475151bf35cd1837968c83

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