Skip to main content

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.

Metadata

Release files for libyak 0.12.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for libyak 0.12.0
File Size Uploaded Provenance
libyak-0.12.0.tar.gz 83.9 kB Without provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for libyak 0.12.0
File
libyak-0.12.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.17+ x86-64 Details
libyak-0.12.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.17+ ARM64 Details
libyak-0.12.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 Details
libyak-0.12.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
libyak-0.12.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64 Details
libyak-0.12.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ ARM64 Details
libyak-0.12.0-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
libyak-0.12.0-cp314-cp314-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.12+ x86-64 Details
libyak-0.12.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.13 CPython 3.13 free-threading Linux glibc 2.17+ ARM64 Details
libyak-0.12.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
libyak-0.12.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
libyak-0.12.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ ARM64 Details
libyak-0.12.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
libyak-0.12.0-cp313-cp313-macosx_10_12_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.12+ x86-64 Details
libyak-0.12.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
libyak-0.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
libyak-0.12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64 Details
libyak-0.12.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
libyak-0.12.0-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details
libyak-0.12.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
libyak-0.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
libyak-0.12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64 Details
libyak-0.12.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
libyak-0.12.0-cp311-cp311-macosx_10_12_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64 Details
libyak-0.12.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
libyak-0.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
libyak-0.12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ ARM64 Details

Total release size: 13.4 MB

Release files / libyak-0.12.0.tar.gz

Download URL libyak-0.12.0.tar.gz
Size 83.9 kB
Tags Source
SHA-256 checksum
How to use checksums
c730552036cfeda9b7ae12c15b528d77ce87bd29f170fb4c9dfda8e3995c22aa
BLAKE2b-256 checksum
How to use checksums
9d39f6e8f4886351310421cfb77aaf5bbabfdf794e513a08d2adfcffd81e6f8c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / libyak-0.12.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL libyak-0.12.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 551.2 kB
Tags Linux glibc 2.17+ x86-64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
ec77a748f97e95820b62334a24590d4c7d563811697c0033656890622c23c783
BLAKE2b-256 checksum
How to use checksums
7b56983f02ecdee66b4900fecb2e356da404bb5385653db3a3b2c718cd21016e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / libyak-0.12.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL libyak-0.12.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 533.4 kB
Tags Linux glibc 2.17+ ARM64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
0cf8fb1677f2f71917dc4b9c92fe47196e2eea6ae8188a41416a5d74a1c32b94
BLAKE2b-256 checksum
How to use checksums
f93f1b310e928c2c9744dc175d7c17321ab9a922cb76b5d597d8a1f1105b9f7a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / libyak-0.12.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL libyak-0.12.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 527.1 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
bfb004e650dbad4f4082c103825e6dea62c5cff81498b7d3ec39e6348f2b8753
BLAKE2b-256 checksum
How to use checksums
edaeecdb9d123baf02df50b563047ccf962a6c7b582e34536b2fe4bbce382bb5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / libyak-0.12.0-cp314-cp314-win_amd64.whl

Download URL libyak-0.12.0-cp314-cp314-win_amd64.whl
Size 363.0 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
0b562ce7eb33462d8e22cbe074530f982f8070abc45bc9b9e2c22219dd9f11d1
BLAKE2b-256 checksum
How to use checksums
88a343fec1be6d26a6ebc0af6a4ef0a2e109aa9870f9ad16f96c4d421f689ca8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / libyak-0.12.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL libyak-0.12.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 547.0 kB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
b71e0fae7fa97e71975d8af2b9691e831c3c94bafaeaa77dbb204e54bacc3550
BLAKE2b-256 checksum
How to use checksums
69de8eb1936eb905391dec8218e687aca7904476e9e08ffd9db56b09beeb9c63
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / libyak-0.12.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL libyak-0.12.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 529.1 kB
Tags CPython 3.14 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
4359923750de4402c6b225ba1b85619cfc75f010b09e1e18213f74ef48bfbee9
BLAKE2b-256 checksum
How to use checksums
436365c8f4f8d12622ddf2a07865793e505ebe78cd055957c838e5fb975a1d11
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / libyak-0.12.0-cp314-cp314-macosx_11_0_arm64.whl

Download URL libyak-0.12.0-cp314-cp314-macosx_11_0_arm64.whl
Size 489.2 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7a3e2a6d41245bdb96e7833a208e1099864a6835334df572c42ab8fc7ed69708
BLAKE2b-256 checksum
How to use checksums
a4b8b39f5f6d4dd2cec9f9dfea8d43777099beeb72b2d77a70e1ff14a2eab430
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / libyak-0.12.0-cp314-cp314-macosx_10_12_x86_64.whl

Download URL libyak-0.12.0-cp314-cp314-macosx_10_12_x86_64.whl
Size 502.7 kB
Tags CPython 3.14 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
b78268bf35c23fa6091a75d0191bfa5aade26736456749fed33b1937d70c39c3
BLAKE2b-256 checksum
How to use checksums
c5eb995dee10eb6c515f1452f48e3f5257b54931366aafc5cdcdbe44518bfe5f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / libyak-0.12.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL libyak-0.12.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 527.6 kB
Tags CPython 3.13 CPython 3.13 free-threading Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
2478da68eaf802c6e86f85771555b95ff9c4c68806e5a37e94d453b50aa999ac
BLAKE2b-256 checksum
How to use checksums
6bd417090481c9e6d5eaad9ebda7155f47ed54b09a1995808817ff9edca2fc77
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / libyak-0.12.0-cp313-cp313-win_amd64.whl

Download URL libyak-0.12.0-cp313-cp313-win_amd64.whl
Size 363.7 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
71d4c4ffd2a409475b6be86c4d15250a5e869e96a31ea3065f9d08e41e06234a
BLAKE2b-256 checksum
How to use checksums
d31907c98201303d658915cd2b41487e17045f062ec91f4a5a5e53f687da58a0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / libyak-0.12.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL libyak-0.12.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 547.0 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
10ab75f8373e430b9fda9bbe3b7f73dd31baaa2fda3f354b5eb544ebb477b5ef
BLAKE2b-256 checksum
How to use checksums
a5a1abdafd59797891e743c35c9b432c0e5dd3f7cf99e9941126dde0b2e70812
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / libyak-0.12.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL libyak-0.12.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 528.9 kB
Tags CPython 3.13 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
b3d996617d0209da641365218cc009ee0746e3f2ef74d35e9599ff42f1993412
BLAKE2b-256 checksum
How to use checksums
0f45032a55dfa9e3ef900d4a8741a92a0f9c9fa592baca2517423d0614a0c8fc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / libyak-0.12.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL libyak-0.12.0-cp313-cp313-macosx_11_0_arm64.whl
Size 488.6 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
5cba82111604673bf81b231bbaf7d7f8c9c9b7b5d18f4891317667ecdcb1eb92
BLAKE2b-256 checksum
How to use checksums
8d1e77daa58bb0817b463519ba1fb8decc2624d79aca7cab61d54d2b250aa3d7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / libyak-0.12.0-cp313-cp313-macosx_10_12_x86_64.whl

Download URL libyak-0.12.0-cp313-cp313-macosx_10_12_x86_64.whl
Size 502.4 kB
Tags CPython 3.13 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
b32d8808e6e94465b1745fc7f7c2ea279e587fba41a8aaee736a4be0d5f20c39
BLAKE2b-256 checksum
How to use checksums
59f5d8a2974e9e4176167ec110800b6e934d53f3687213b772b79b0f37e816cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / libyak-0.12.0-cp312-cp312-win_amd64.whl

Download URL libyak-0.12.0-cp312-cp312-win_amd64.whl
Size 363.9 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
e67db588c5938efdecb14ac6875b01c240265b5f07bf4ec2a17f790622914b68
BLAKE2b-256 checksum
How to use checksums
c3d2e580ba5d815f5b690680cfdbd7fb771065c7d924708012031b5fa8f0becf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / libyak-0.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL libyak-0.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 547.2 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
3ad2bd6982a4d28abf39df69fa6e9570eac91587b6e19a6a1e1e5a1c5676ba85
BLAKE2b-256 checksum
How to use checksums
924835810793520f835761cd08f40da660a9a12f88153747f57318b501b84668
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / libyak-0.12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL libyak-0.12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 529.5 kB
Tags CPython 3.12 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
7b81f39bb428186b992c5d67239a44a85db2b99b5adaabe82915c9ea09fd4b86
BLAKE2b-256 checksum
How to use checksums
3255ef586bb0977ebf1a04c455573a67f828502d8436dfb375e49e57dbd55ebb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / libyak-0.12.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL libyak-0.12.0-cp312-cp312-macosx_11_0_arm64.whl
Size 489.5 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
603fb336e16db6bfc014aeccc35465b6c2d14fb71c613cdddeb4910d168ad4ba
BLAKE2b-256 checksum
How to use checksums
e95e359c0e948f08752baecd4a99d5b072d3a912dd0b1e55e6d66b01c9b5bba6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / libyak-0.12.0-cp312-cp312-macosx_10_12_x86_64.whl

Download URL libyak-0.12.0-cp312-cp312-macosx_10_12_x86_64.whl
Size 503.1 kB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
98fb915c0cf48f23d1dcd6c7e215c8e43870065201fb9374234c70ac318b4949
BLAKE2b-256 checksum
How to use checksums
edb706052c2f825c3985d5a7e957d624de204a038fca75faee71ae404760018a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / libyak-0.12.0-cp311-cp311-win_amd64.whl

Download URL libyak-0.12.0-cp311-cp311-win_amd64.whl
Size 365.5 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
b44949885298fc5dc85d7c33ec4c436ed82b8a69fa5afbdb6dddd75647fc7604
BLAKE2b-256 checksum
How to use checksums
1c629a497d26aa4567f105cb93c9cf3e31a5c0b2a2bd7dd309757cc1f3bb0aa8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / libyak-0.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL libyak-0.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 549.4 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
c8cac32cc68d1a818e588b440a9f5b30655b075bb9b662df1869009fc546f126
BLAKE2b-256 checksum
How to use checksums
3105cb987e0bd6850450459358816d10d7826d707a6174ba7baa9af3e149c11b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / libyak-0.12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL libyak-0.12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 531.1 kB
Tags CPython 3.11 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
1132f428bcb0c84f84a95c0cf4df80626b668c8ef376f78612cf878eca9b718e
BLAKE2b-256 checksum
How to use checksums
58bb617ee91a48edd80026f6ff280921450ef07f7cf94feaeb47ab30ec1f8ab0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / libyak-0.12.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL libyak-0.12.0-cp311-cp311-macosx_11_0_arm64.whl
Size 491.7 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
23e3394aca4cc4cd2bc9760a9e5f1b11344a29a52951148b958b0264d661dd2a
BLAKE2b-256 checksum
How to use checksums
eb4ba246007fab0cf1ef1ac49cb875707234852cffdada5b3109ba555c80951c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / libyak-0.12.0-cp311-cp311-macosx_10_12_x86_64.whl

Download URL libyak-0.12.0-cp311-cp311-macosx_10_12_x86_64.whl
Size 504.7 kB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
5e8ce000e1cd7a12a84dc4665a248082f58fae1dde61939e54f886aec10fc12b
BLAKE2b-256 checksum
How to use checksums
aab831c0da3f75d74fe73d2338199e265aafc12a9b55116a0f74b9d49ee5d6ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / libyak-0.12.0-cp310-cp310-win_amd64.whl

Download URL libyak-0.12.0-cp310-cp310-win_amd64.whl
Size 365.2 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
d62e2c0acf2d91c108b66e5126639ca6178e8e82412c1fca0764ab887e69c158
BLAKE2b-256 checksum
How to use checksums
7ebf7098b70a45935709e81f081577451614e59046c790498715c4cca0e3c027
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / libyak-0.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL libyak-0.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 549.6 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
93e974c6981f709ee35d250dd615ba5d59af98bdeac8211e851d614131c7b114
BLAKE2b-256 checksum
How to use checksums
5c2ef621abf1fd830e3f1b5b998924ed92a7c865265af9dd79ec4c99fd9030fc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / libyak-0.12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL libyak-0.12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 530.9 kB
Tags CPython 3.10 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
0bf0bb5242302809b1be1a405b3a1b5911aab94966f0b0bcbfa7a6b6e2816bcd
BLAKE2b-256 checksum
How to use checksums
25fbe1c5daf96a6f8c4931f541f4ae491afb75a551a732c3b2f7ccb8a7872574
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Security for libyak 0.12.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page