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.12.0.tar.gz (83.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.12.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (551.2 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

libyak-0.12.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (533.4 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

libyak-0.12.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (527.1 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

libyak-0.12.0-cp314-cp314-win_amd64.whl (363.0 kB view details)

Uploaded CPython 3.14Windows x86-64

libyak-0.12.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (547.0 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

libyak-0.12.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (529.1 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

libyak-0.12.0-cp314-cp314-macosx_11_0_arm64.whl (489.2 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

libyak-0.12.0-cp314-cp314-macosx_10_12_x86_64.whl (502.7 kB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

libyak-0.12.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (527.6 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

libyak-0.12.0-cp313-cp313-win_amd64.whl (363.7 kB view details)

Uploaded CPython 3.13Windows x86-64

libyak-0.12.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (547.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

libyak-0.12.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (528.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

libyak-0.12.0-cp313-cp313-macosx_11_0_arm64.whl (488.6 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

libyak-0.12.0-cp313-cp313-macosx_10_12_x86_64.whl (502.4 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

libyak-0.12.0-cp312-cp312-win_amd64.whl (363.9 kB view details)

Uploaded CPython 3.12Windows x86-64

libyak-0.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (547.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

libyak-0.12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (529.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

libyak-0.12.0-cp312-cp312-macosx_11_0_arm64.whl (489.5 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

libyak-0.12.0-cp312-cp312-macosx_10_12_x86_64.whl (503.1 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

libyak-0.12.0-cp311-cp311-win_amd64.whl (365.5 kB view details)

Uploaded CPython 3.11Windows x86-64

libyak-0.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (549.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

libyak-0.12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (531.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

libyak-0.12.0-cp311-cp311-macosx_11_0_arm64.whl (491.7 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

libyak-0.12.0-cp311-cp311-macosx_10_12_x86_64.whl (504.7 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

libyak-0.12.0-cp310-cp310-win_amd64.whl (365.2 kB view details)

Uploaded CPython 3.10Windows x86-64

libyak-0.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (549.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

libyak-0.12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (530.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

File details

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

File metadata

  • Download URL: libyak-0.12.0.tar.gz
  • Upload date:
  • Size: 83.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.12.0.tar.gz
Algorithm Hash digest
SHA256 c730552036cfeda9b7ae12c15b528d77ce87bd29f170fb4c9dfda8e3995c22aa
MD5 cb808b13b47d94ac4cd9b9db2294830c
BLAKE2b-256 9d39f6e8f4886351310421cfb77aaf5bbabfdf794e513a08d2adfcffd81e6f8c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.12.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ec77a748f97e95820b62334a24590d4c7d563811697c0033656890622c23c783
MD5 5c03a0f376a1a4ef0467b3cb289c7b29
BLAKE2b-256 7b56983f02ecdee66b4900fecb2e356da404bb5385653db3a3b2c718cd21016e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.12.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0cf8fb1677f2f71917dc4b9c92fe47196e2eea6ae8188a41416a5d74a1c32b94
MD5 4e4b91e843acec1868ecde91f9967e2b
BLAKE2b-256 f93f1b310e928c2c9744dc175d7c17321ab9a922cb76b5d597d8a1f1105b9f7a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.12.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 bfb004e650dbad4f4082c103825e6dea62c5cff81498b7d3ec39e6348f2b8753
MD5 d696e8d10e0eb318343f22bc1327357e
BLAKE2b-256 edaeecdb9d123baf02df50b563047ccf962a6c7b582e34536b2fe4bbce382bb5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: libyak-0.12.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 363.0 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.12.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 0b562ce7eb33462d8e22cbe074530f982f8070abc45bc9b9e2c22219dd9f11d1
MD5 5e3407009efcef6af61402eff3d7fe86
BLAKE2b-256 88a343fec1be6d26a6ebc0af6a4ef0a2e109aa9870f9ad16f96c4d421f689ca8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.12.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b71e0fae7fa97e71975d8af2b9691e831c3c94bafaeaa77dbb204e54bacc3550
MD5 00b578c05a8e9a23bb1e2c8e20d13d45
BLAKE2b-256 69de8eb1936eb905391dec8218e687aca7904476e9e08ffd9db56b09beeb9c63

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.12.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4359923750de4402c6b225ba1b85619cfc75f010b09e1e18213f74ef48bfbee9
MD5 8d91110aa02ef190ab4f6bc23f210499
BLAKE2b-256 436365c8f4f8d12622ddf2a07865793e505ebe78cd055957c838e5fb975a1d11

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.12.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7a3e2a6d41245bdb96e7833a208e1099864a6835334df572c42ab8fc7ed69708
MD5 24d2a43f26f0c2bcf93ca5315d039725
BLAKE2b-256 a4b8b39f5f6d4dd2cec9f9dfea8d43777099beeb72b2d77a70e1ff14a2eab430

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.12.0-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b78268bf35c23fa6091a75d0191bfa5aade26736456749fed33b1937d70c39c3
MD5 0e3e31980a71bb1cc910b3e5e59367cd
BLAKE2b-256 c5eb995dee10eb6c515f1452f48e3f5257b54931366aafc5cdcdbe44518bfe5f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.12.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2478da68eaf802c6e86f85771555b95ff9c4c68806e5a37e94d453b50aa999ac
MD5 4f097a38518b81910d18f6ec3adfd529
BLAKE2b-256 6bd417090481c9e6d5eaad9ebda7155f47ed54b09a1995808817ff9edca2fc77

See more details on using hashes here.

File details

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

File metadata

  • Download URL: libyak-0.12.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 363.7 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.12.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 71d4c4ffd2a409475b6be86c4d15250a5e869e96a31ea3065f9d08e41e06234a
MD5 fd9e1d7b26897c4ce4fa083efb6c5906
BLAKE2b-256 d31907c98201303d658915cd2b41487e17045f062ec91f4a5a5e53f687da58a0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.12.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 10ab75f8373e430b9fda9bbe3b7f73dd31baaa2fda3f354b5eb544ebb477b5ef
MD5 0379a02b367b3c9ceb6b6b21447410e6
BLAKE2b-256 a5a1abdafd59797891e743c35c9b432c0e5dd3f7cf99e9941126dde0b2e70812

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.12.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b3d996617d0209da641365218cc009ee0746e3f2ef74d35e9599ff42f1993412
MD5 85ec36c76035cc51efe95c9b20d4eb49
BLAKE2b-256 0f45032a55dfa9e3ef900d4a8741a92a0f9c9fa592baca2517423d0614a0c8fc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.12.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5cba82111604673bf81b231bbaf7d7f8c9c9b7b5d18f4891317667ecdcb1eb92
MD5 db6587bcb1b1823b82a2977c5784e896
BLAKE2b-256 8d1e77daa58bb0817b463519ba1fb8decc2624d79aca7cab61d54d2b250aa3d7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.12.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b32d8808e6e94465b1745fc7f7c2ea279e587fba41a8aaee736a4be0d5f20c39
MD5 a607fec3a92c4c18392561e4b43170b2
BLAKE2b-256 59f5d8a2974e9e4176167ec110800b6e934d53f3687213b772b79b0f37e816cb

See more details on using hashes here.

File details

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

File metadata

  • Download URL: libyak-0.12.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 363.9 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.12.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e67db588c5938efdecb14ac6875b01c240265b5f07bf4ec2a17f790622914b68
MD5 97cacd82e54980396e6f6f5002151c66
BLAKE2b-256 c3d2e580ba5d815f5b690680cfdbd7fb771065c7d924708012031b5fa8f0becf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3ad2bd6982a4d28abf39df69fa6e9570eac91587b6e19a6a1e1e5a1c5676ba85
MD5 811c85365df75df63790a5ee012ff6b5
BLAKE2b-256 924835810793520f835761cd08f40da660a9a12f88153747f57318b501b84668

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7b81f39bb428186b992c5d67239a44a85db2b99b5adaabe82915c9ea09fd4b86
MD5 7542579b3c1692bbbb8bc78da75c962b
BLAKE2b-256 3255ef586bb0977ebf1a04c455573a67f828502d8436dfb375e49e57dbd55ebb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.12.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 603fb336e16db6bfc014aeccc35465b6c2d14fb71c613cdddeb4910d168ad4ba
MD5 c4f1c595249aac66a476802b3e5a241f
BLAKE2b-256 e95e359c0e948f08752baecd4a99d5b072d3a912dd0b1e55e6d66b01c9b5bba6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.12.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 98fb915c0cf48f23d1dcd6c7e215c8e43870065201fb9374234c70ac318b4949
MD5 6fe57fec7f247a5776164ce0d039fd94
BLAKE2b-256 edb706052c2f825c3985d5a7e957d624de204a038fca75faee71ae404760018a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: libyak-0.12.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 365.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.12.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b44949885298fc5dc85d7c33ec4c436ed82b8a69fa5afbdb6dddd75647fc7604
MD5 9d029a47b20fb822e856865648be732a
BLAKE2b-256 1c629a497d26aa4567f105cb93c9cf3e31a5c0b2a2bd7dd309757cc1f3bb0aa8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c8cac32cc68d1a818e588b440a9f5b30655b075bb9b662df1869009fc546f126
MD5 f5193c2f6020f8b9de4377f1490f5caa
BLAKE2b-256 3105cb987e0bd6850450459358816d10d7826d707a6174ba7baa9af3e149c11b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1132f428bcb0c84f84a95c0cf4df80626b668c8ef376f78612cf878eca9b718e
MD5 8c8d68d4c70992b60e268cf811412de4
BLAKE2b-256 58bb617ee91a48edd80026f6ff280921450ef07f7cf94feaeb47ab30ec1f8ab0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.12.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 23e3394aca4cc4cd2bc9760a9e5f1b11344a29a52951148b958b0264d661dd2a
MD5 39779bdd6b1e5d18562e88381208c522
BLAKE2b-256 eb4ba246007fab0cf1ef1ac49cb875707234852cffdada5b3109ba555c80951c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.12.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5e8ce000e1cd7a12a84dc4665a248082f58fae1dde61939e54f886aec10fc12b
MD5 7fc1183c992350e34be57e94d10f6e04
BLAKE2b-256 aab831c0da3f75d74fe73d2338199e265aafc12a9b55116a0f74b9d49ee5d6ea

See more details on using hashes here.

File details

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

File metadata

  • Download URL: libyak-0.12.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 365.2 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.12.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d62e2c0acf2d91c108b66e5126639ca6178e8e82412c1fca0764ab887e69c158
MD5 95ca2d7685e32d0561edbefe61612ba0
BLAKE2b-256 7ebf7098b70a45935709e81f081577451614e59046c790498715c4cca0e3c027

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 93e974c6981f709ee35d250dd615ba5d59af98bdeac8211e851d614131c7b114
MD5 0037e848a8849ab445e40c7b263dc4bb
BLAKE2b-256 5c2ef621abf1fd830e3f1b5b998924ed92a7c865265af9dd79ec4c99fd9030fc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for libyak-0.12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0bf0bb5242302809b1be1a405b3a1b5911aab94966f0b0bcbfa7a6b6e2816bcd
MD5 d3fe49276a7cc7e54238e874718bcf30
BLAKE2b-256 25fbe1c5daf96a6f8c4931f541f4ae491afb75a551a732c3b2f7ccb8a7872574

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