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.1.tar.gz (82.9 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.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (487.9 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

libyak-0.11.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (472.2 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

libyak-0.11.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (466.5 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

libyak-0.11.1-cp314-cp314-win_amd64.whl (322.6 kB view details)

Uploaded CPython 3.14Windows x86-64

libyak-0.11.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (483.4 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

libyak-0.11.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (467.4 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

libyak-0.11.1-cp314-cp314-macosx_11_0_arm64.whl (434.2 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

libyak-0.11.1-cp314-cp314-macosx_10_12_x86_64.whl (447.2 kB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

libyak-0.11.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (467.2 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

libyak-0.11.1-cp313-cp313-win_amd64.whl (323.2 kB view details)

Uploaded CPython 3.13Windows x86-64

libyak-0.11.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (483.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

libyak-0.11.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (467.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

libyak-0.11.1-cp313-cp313-macosx_11_0_arm64.whl (434.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

libyak-0.11.1-cp313-cp313-macosx_10_12_x86_64.whl (447.2 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

libyak-0.11.1-cp312-cp312-win_amd64.whl (323.6 kB view details)

Uploaded CPython 3.12Windows x86-64

libyak-0.11.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (484.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

libyak-0.11.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (467.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

libyak-0.11.1-cp312-cp312-macosx_11_0_arm64.whl (434.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

libyak-0.11.1-cp312-cp312-macosx_10_12_x86_64.whl (447.6 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

libyak-0.11.1-cp311-cp311-win_amd64.whl (325.7 kB view details)

Uploaded CPython 3.11Windows x86-64

libyak-0.11.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (487.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

libyak-0.11.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (471.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

libyak-0.11.1-cp311-cp311-macosx_11_0_arm64.whl (436.9 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

libyak-0.11.1-cp311-cp311-macosx_10_12_x86_64.whl (449.4 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

libyak-0.11.1-cp310-cp310-win_amd64.whl (325.4 kB view details)

Uploaded CPython 3.10Windows x86-64

libyak-0.11.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (487.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

libyak-0.11.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (471.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

File details

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

File metadata

  • Download URL: libyak-0.11.1.tar.gz
  • Upload date:
  • Size: 82.9 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.1.tar.gz
Algorithm Hash digest
SHA256 8987757cd02df4fffe92afdb8dec39dfceb0f4cd18c1a9bb7e1d5b3de8e5d22c
MD5 1128bdf649445b92e6b3fa6a728af525
BLAKE2b-256 30224d712a068447aa7863dbe3643bc60ef5682dfcfaca72f76615eb42e04ee5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 09cc9b59f7a07e554bfaa6d88c2decbd915575bc0dd117e54fdd652c98043af3
MD5 bb78ac977ca50cbdec2e79ca78cb1132
BLAKE2b-256 20f0f4c61e89b8441a9df1d2fc946cffe2081ed2faf3f640af48a842d9f6ed25

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 dc6339873985d576463ca9991f56b963d632ce7184dde8913a7dade251ed2c59
MD5 54161a3e6a2670f853083581bf8dad63
BLAKE2b-256 a7f1f11310af0344eb126d64d6203649f8ac008f0576abcb4712d92cc5150fa9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 02bf65afde44c7f55e5ab6a1227768b1922ad88132e5d7c4e5da274fe25f4485
MD5 ea1bef868b9ee1e74be16e9810e0b877
BLAKE2b-256 d805d20ff858abee5ea1c73f46dab9e712a4556ea532efe95c5e314a417b3b24

See more details on using hashes here.

File details

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

File metadata

  • Download URL: libyak-0.11.1-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 322.6 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.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 695446b7fc55d58d45256a40f682a1505643f2e353053d9f22b244f355d21995
MD5 0f1c8276786c8e0daaf51e3b1bc28bbb
BLAKE2b-256 b602bbf81c78c4ba6323a1fbfe2032997408facf5971973bebde12e94bbb477d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 24374a9f1fb33aadfa31387038f18633653ea73a1678af04e88b35eb428e0c52
MD5 bd0a7747b5254f2b2ad69bfdd6d5f7ad
BLAKE2b-256 c7d3d0b6c1297f1fe26429c4aa9d99733ccc307a1739215e9dd2d9f23c5f80b0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 422cacde7c4f1b40bb0862cc3bb4c2e5517270d082dfd0f38eb2e92f1e491166
MD5 0949bff6b25eaa7d65ab6e14b5d7cf2d
BLAKE2b-256 ddd4b555d250eb667305eb06ec50b960e67475191f0cb94a0a30f5d3b78bbdc2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9fb4e20686a81a95a3a86794f203f0f39e11dfa717c649a49ae2d19af6f5588b
MD5 e031696ae49cb934deca4470ed34f2f2
BLAKE2b-256 e1938daafe5a589b4ff2e8db81731f48aa3fc9314a5ee2f02c867dcdb77cd702

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.1-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5affba6cae20bd85a96b3651e12e1011d5aec75b357e0eda7f1d8bd14bffafc8
MD5 cb99854ec35a5b40ef55e6456e35800c
BLAKE2b-256 541982ee8940c42434f17844864b1858c29b9a8129f15f4755f165fc10234a2f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4bea6169aa18c44177d7972a95511af305d95e252867fca2d051fa1edf9d7b81
MD5 0149530d8426fbee612f42c99b71837e
BLAKE2b-256 ecaa0b7355036b04dd0596999999f289c8f18101d9e5931b555c70958993c295

See more details on using hashes here.

File details

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

File metadata

  • Download URL: libyak-0.11.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 323.2 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.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 12526ebd8a0a02ee006ef0f3fc741143d3437dc3a9a697c1206f213f9a61beba
MD5 b23ae7b843f0d03e54d0930921ca4939
BLAKE2b-256 c374eb62a79b0aa67883260a1c68048de64f1bd0837c013ba54fb5bd1f27b7e4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 169f139c31798368e812ad0e8726541bb4b5b7dde545db7861d5fa12fb52642c
MD5 0c45f3cf30c68a20e3510397e0525bb8
BLAKE2b-256 cad78c234397e11b98dd5906fda54a58979d7f3169e95f9a278255ace1b1dc7d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 09eeabc073b02ca120c10545d6ffbabbc48a655cca4f165c0d197edda19367b2
MD5 0cc976e2e7464dd2057184aceceeee44
BLAKE2b-256 912a3de0a0f4152d2e6fe9afdfd476b1795afee25f91e1baa7940b283cdd5200

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e6ecb2d375ef3d8f927e24c16f8375ca1c296683b71746eb9c6272e562b68a52
MD5 92bed62a1bc74e38e1e0fa0db98b4c50
BLAKE2b-256 c6ec713d6a5af7b18b63ee85e1f05dfa8ebaefc11881afb0794141d7fd1ccac3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.1-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 459cbf505bce2f4a6f8c4aab1a76590ad86e9fc5b4c872d94d0c24665fd9d2e5
MD5 11a991d855fd2f3636324a6383fb11f3
BLAKE2b-256 b9c98338da5bcf7f8ce5e5ea7a282fe0f84e35154142500d16d05120a75203a7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: libyak-0.11.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 323.6 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.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 076a5d87cb9334349ee9928985a1121a84dd15b3328405870b9a54d969e3fb83
MD5 ebb26b625ec13b61ef784744a3ec01bb
BLAKE2b-256 f37e5befa5c99b6c3e94a886e4bb83681dab89b22b711194c3486bbc03a3bac0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dd536c806af10f983caa3ad20e8bb91133f76b571409ad4ab271111806ac92b2
MD5 27c8a8f0cc5922e797ab1be99c833d7a
BLAKE2b-256 224ef14619e6a3b3dcec081b93aeeea0061b09a9a6978edb9d77c48d0d74deef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4f60aab4290b53f491bf95e011de0ec760f5cfb66d1e639ee9ebdeaf6f8df666
MD5 5991caa6a31151a9148a98745cee1425
BLAKE2b-256 9d505ebaa1fa8cb69af1dfd10b5de5c62818a3a4bc94662bda98d27aefbc6f87

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f0b9390e97d41d9c668027183f19a817d9b922779dbbedbe747d950c839d8b35
MD5 cafd3c08931ddc4284e53b033509b6ed
BLAKE2b-256 0ce8c1de4d241fad0c8d0d6b7bdfca8211fe8f84140b28872fb9b406f3402ba6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.1-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ba79ac8bbefdae47836d16c42330f75f90e11e8970d7ea078ed32ccb9a461bd9
MD5 25b2c24657d747314f2be248afe4a83f
BLAKE2b-256 9d7eefeb158d0430770012e80596124b1bca3330d54a51ea570d1a9cf4db2638

See more details on using hashes here.

File details

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

File metadata

  • Download URL: libyak-0.11.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 325.7 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.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 040242baff8db70cfb60f22d6e8a1b02f98651202f7166a8578a5655d570599c
MD5 348bc30f6aab9fdc2b39ff9f0fcbfbdc
BLAKE2b-256 4fad60dbee06c4da4681450a271ee9ca88ec4473de2bb9d937e21cd114e21c6e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ce66cbad9aa0efbd3285de92d4600ac47f46a1527d2c6ca37922a2b1a846b740
MD5 1f3fead9c1120c6514c6645c5caaf108
BLAKE2b-256 7465ccf49f5979c88cdcd0839b16d5b96ed9a72a45ca13a8392294895d6fc3ab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 314f417e0607846dca92e4a23ec4f3309b51afa579bc0df583b7058070605038
MD5 3ccdadec9b94a0313d9d7e35d61dbbb2
BLAKE2b-256 13eac577014205e61f52a95b35790d2aa7665ac2c94a9fc56f821b104eae1c34

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5f5951e96175106e6f8fe951b56b27a4e2abf57af72655cff836e703bc4e6cf6
MD5 ece7eede026e8e9610c47af314fc406b
BLAKE2b-256 416ae19807bc7fd749a8493fa2bc2928989b67fd992f382e060ef35769386899

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.1-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e367988ef23f502a1876f6de4ba8d7ab8ad486c0b60ea09a96ef51faf382e126
MD5 0056453c16db1282f0b8d6bc4b769ad2
BLAKE2b-256 e99ffa4b1bb9a2edba1e30825bc4512426d014eaf408121b2c183c59ac1cace5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: libyak-0.11.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 325.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.11.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 af4778ac5b3eba93d6f3831451030d4492f2e6a5e6573a2d53c3a68bda945599
MD5 73d14e9bbfbc32553905dd7c7ef4a51f
BLAKE2b-256 088c42dac2ff63f79c86ff2546d095798c411fe01e4e8d80b8f25248c566d51c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a274dad861b5b12d14f977f4487fa339eb870c028b412a43a1a1bd7bc1a20cc3
MD5 2c55fc8b40649d9eb239282b7264cdfd
BLAKE2b-256 6e5ebc55d8817d79a7c1810e16e472c508ea1d3f89176fda47362633c5ad91a0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.11.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1bd4345ca40a714a384808701a3f543c1fa7a06063c32fd15070a895f565a6b6
MD5 dda812ac7853d7384660db6ff98e11ae
BLAKE2b-256 dfa864e99512a6a59f4f982678ae6197b3be128d0adae55e59a87b9f98fa11d8

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