Skip to main content

PyPI version

Crackle: Next gen. 3D segmentation compression codec.

# Command Line Interface
# cckl (compress) and dckl (decompress) are single purpose command line
# utilities like gzip and gunzip 
cckl data.npy # creates data.ckl
cckl -m 5 data.npy # use a 5th order context model
cckl --allow-pins data.npy # use pin encoding for labels
cckl --allow-pins -m 5 data.npy # use pins and markov model
cckl -m 0 data.ckl # change markov model order

dckl data.ckl # recovers data.npy

# crackle is a fully featured utility with a command tree

crackle test data.ckl # check for file corruption

# convert between file types if you have the libraries installed
crackle convert -z --to tiff -k data.ckl # data.ckl -> zlib compressed data.tiff
crackle convert --to nrrd data.ckl # data.ckl -> data.nrrd

crackle info data.ckl # print basic info about the file
crackle labels data.ckl # print labels
crackle view data.ckl # visualize the file

crackle downsample data.ckl -o data_downsampled.ckl # perform 2x2x1 mode pooling and write the output
crackle meta data.ckl # generate data.ckl.meta.parquet

# if you have a directory of 0000.ckl, 0001.ckl, ... etc
# where each incremental number is a z-slice
# you can combine them into a single file
# filenames are sorted in alphabetical order, ensure they 
# are padded
crackle stack ./  # outputs merged.ckl
import crackle
import numpy

labels = np.load("example.npy") # a 2D or 3D dense segmentation

binary = crackle.compress(labels, allow_pins=False, markov_model_order=0)
labels = crackle.decompress(binary, parallel=0) # use all cores (default)

# faster extraction of binary images
binary_image = crackle.decompress(binary, label=1241)

# get unique labels without decompressing
uniq = crackle.labels(binary) 
# get unique labels for a z-range
uniq = crackle.labels_for_z_range(binary, 5, 10)
# get num labels without decompressing
N = crackle.num_labels(binary) 
# get min and max without decompressing
mn = crackle.min(binary)
mx = crackle.max(binary)
# check if label in array in log(N) time
has_label = crackle.contains(binary, label)
# extract a range of labels in something like log(N) time
labels = crackle.contains_range(binary, low, high)

# iterate over all binary images rapidly. crop
# close crops to the ROI and makes iteration a bit faster
for label, binimg in crackle.each(binary, crop=True):
  pass

# iterate over 255 labels at a time. Useful if your downstream
# processing supports multilabel images but you need an 8x reduction
# in memory usage compared to a uint64 image. Much faster than binary
# image iteration. img is reused for 255 iterations before being replaced.
for label, tmp_label, img in crackle.each(binary, multi=True):
  pass

# Remap labels without decompressing. Could
# be useful for e.g. proofreading.
remapped = crackle.remap(
  binary, { 1: 2, 2: 3, ... },
  preserve_missing_labels=True
)

# change dtype to smallest possible w/o precision loss
remapped = crackle.refit(binary)
# renumber array and change dtype to smallest possible
remapped = crackle.renumber(binary, start=0)

is_equal = crackle.array_equal(binary1, binary2)
arr == arr2 # syntactic sugar for CrackleArrays
arr.array_equal(arr2) # method call for CrackleArrays

# for working with files
# if .gz is appended to the filename, the file will be
# automatically gzipped (or ungzipped)
crackle.save(labels, "example.ckl.gz")
labels = crackle.load("example.ckl.gz")

# Save a crackle array as a numpy array
# in a memory efficient manner.
crackle.save(binary, "example.npy.gz")

arr = crackle.CrackleArray(binary, parallel=0) # 0 means use all cores (default)
res = arr[:10,:10,:10] # array slicing (efficient z ranges)
arr[:,:,30] = 20 # write to a crackle array (whole z slices write faster)
20 in arr # log(N) check
arr = arr.numpy() # convert to a numpy array

# low memory extraction of point clouds
ptc = crackle.point_cloud(binary) # { label: np.ndarray, ... }
ptc = crackle.point_cloud(binary, label=777)
ptc = crackle.point_cloud(binary) 

# rapid and low memory
voxel_counts = crackle.voxel_counts(binary)
centroids = crackle.centroids(binary)
bbxes = crackle.bounding_boxes(binary)

# extract the 4-way or 6-way voxel connectivity graph
# note: 4-way is stored in the format so is extremely fast
vcg = crackle.voxel_connectivity_graph(binary, connectivity=6)

# surface area for 6-connected region contacts
contacts = crackle.contacts(binary, anisotropy=(32,32,40))

# low memory CCL, the more memory you provide, the faster it goes
ccl_binary = crackle.connected_components(
  binary, 
  connectivity=26, # 6 (faces) & 26 (faces,edges,corners) supported
  memory_target=int(1e9), # bytes
  progress=True,
  return_mapping = False, # can also return { cc label: original label }
)

# Create a 2x2 downsampled crackle volume
downsampled_binary = crackle.mode_pooling_2x2x1(binary)

# building big arrays with low memory
binary = crackle.zeros([5000,5000,5000], dtype=np.uint64, order='F')

part1 = np.zeros([1000, 1000, 1000], dtype=np.uint32)
part2 = crackle.ones([1000, 1000, 1000], dtype=np.uint32)

binary = crackle.asfortranarray(binary)
binary = crackle.ascontiguousarray(binary)

# creates a crackle binary with part1 stacked atop part2
# in the z dimension. x and y dimensions must match
# without needing to decompress anything.
binary = crackle.zstack([ part1, part2 ])

# splits a crackle binary into before, middle (single slice),
# and after sections without decompressing.
before, middle, after = crackle.zsplit(binary, z=742)

# splits binary into individual z slices
sections = crackle.zshatter(binary)

This repository is currently Beta. It works and the format is reasonably fixed. There may be some improvements down the line (such as 3d compression of crack codes, 2d chunking), but they will be a new format version number if necessary to retain backwards compatibility.

Crackle is a compression codec for 3D dense segmentation (labeled) images. The algorithm accepts both signed and unsigned integer labels (though the implementation currently has some restrictions on signed integers). It is written in C++ and has Python bindings. Crackle uses a two pass compression strategy where the output of crackle may be further comrpessed with a bitstream compressor like gzip, bzip2, zstd, or lzma. However, if the Crackle binary, which is already small, is not further compressed, it supports several efficient operations:

  • Query if a label exists in the image
  • Extract unique labels
  • Remap labels
  • Decode by Z-Range
  • Computing slice by slice multithreaded

Crackle is inspired by Compresso [1]. Compresso innovated by separating labels from boundary structures. There were conceptually four (but really five) elements in the format: header, labels, bit packed and RLE encoded binary image boundaries, and indeterminate boundary locations.

Crackle improves upon Compresso by replacing the bit-packed boundary map with a "crack code" and can also use 3D information to reduce redundancy in labels using "pins".

See benchmarks for more information on Crackle's size and compute effiency.

Optional Performance Enhancing Sidecar .ckl.meta.parquet File

Counting voxels or measuring bounding boxes is fully supported by the bare crackle file, but requires computation which on large images or numerous images can become substantial. Therefore, crackle comes with a facility for generating a .parquet file containing this metadata information for faster retrieval. Currently, to avoid engineering complexity, crackle does not make use of this file, so use pyarrow, duckdb, or similar to read it. This extra file adds nothing except performance enhancement for some use cases. All data can be generated from the crackle file alone, and nothing is lost if the sidecar file is lost.

You will need pyarrow installed to generate this file: pip install pyarrow

crackle -M myfile.ckl # generates myfile.ckl.meta.parquet
import crackle

arr = crackle.aload("myfile.ckl")
arr.cache_meta("myfile.ckl.meta.parquet") # generate the sidecar file

You can then read the parquet files using your favorite parquet reader. Sometimes it is faster to use crackle methods on single files, but when tested on hundreds of thousands of files, reading voxel counts out of parquet was 100x faster (20 files per second versus 2000 on a Macbook M3).

Parquet Schema

Bbox type is uint16 unless the xy dimensions of the crackle file exceed 16-bits (65,535) in which case it is uint32.

label: uint64
voxel_count: uint32
min_x: uint16 or uint32
max_x: uint16 or uint32
min_y: uint16 or uint32
max_y: uint16 or uint32
# if it's a 3d crackle file
min_z: uint16 or uint32
max_z: uint16 or uint32

Reading Example

import pyarrow.parquet as pq
table = pq.read_table("myfile.ckl.meta.parquet")
print(table)

Installation

pip install crackle-codec 

Building from source (requires cmake and a c++ compiler):

git clone https://github.com/seung-lab/crackle.git
cd crackle
git submodule update --init --recursive # fetches google/crc32c library
python setup.py develop

Versions

Format Version Description
0 Initial release w/ flat, pins, crack codes with finite context modeling. Beta.
1 Incr. header to 29 bytes from 24. num_label_bytes u32->u64, adds crcs to protect stream components.

Stream Format

Section Bytes Description
Header v0: 24, v1: 29 Metadata incl. length of fields.
Crack Index header.sz * sizeof(uint32), v1: +4 Number of bytes for the crack codes in each slice + CRC32c(le)
Labels header.num_label_bytes Can be either "flat" labels or "pins". Describes how to color connected components.
Crack Codes Variable length. Instructions for drawing crack boundaries.
Labels crc32c (v1 only) 4(le) v0: n/a, v1: crc32c of the labels binary.
Crack crc32c (v1 only) header.sz * 4(le) v0: n/a, v1: crc32c of the uncompressed uint32_t fortran order connected component labeling of each z-slice.

A Note on CRCs

CRCs protect each step of the decoding process. The fixed width header is protected by crc8, which contains information for decoding the crack index. The crack index is in turn protected by a crc32c. This is not overkill because a very large volume or a volume that is randomly accessible in XY as well as Z would need a crc32 vs a crc16.

The crack index is used for decoding the structural information (the connected components for each slice). We store a crc32c for each z-slice. This allows random z access to be validated while balancing against the storage cost of creating too many crc (e.g. vs. once per a grid).

We also store a crc32c for the labels binary independently of the crack codes.

All crcs are stored little endian.

Why not store a single crc for the entire uncompressed image? This would make it difficult to validate as a single crackle file could represent many terabytes of data. It would also make it difficult to edit the labels (remap) independently of the structure. Storing a crc32c per a z-slice also allows for z-stacking independent slices without recalculating crcs.

The downside to this strategy is a small increase in the file size and an increase in false positives for crc32s. This is the price of having the format be more of a random-access array format than a bitstream format. However, as crackle is designed to be two stage compressed, for example, with lzip, an LZMA variant with error correction properties, these issues are mitigated when archived.

crc8 (0xe7, initialized with 0xFF) was selected due to its ability to reliably detect two bit flips in up to 247 bits of message data, the best available for our header length.

crc32c was selected as the polynomial due to the availability of high performance implementations. This is important to avoid CRC calculation being a significant cost to the codec.

Error Detection and (Limited, Human Assisted) Correction

Due to this mutli-crc strategy, it is possible to narrow down corruptions to the section of the binary where they occur. For example, if you are concerned with only z=1-100 and the error occurs at z=200, you're ok. If the error occurs in the labels_binary, but you were planning on applying a full new mapping anyway, you can get away with discarding the extant labeling. Certain bit flips in the labels binary will create out of range keys, which will aid in identifying exactly where the error occured. Headers can be repaired potentially be human inspection (if they know the dataset).

Header

Attribute Value Type Description
magic crkl char[4] File magic number.
format_version 0 or 1 u8 Stream version.
format_field bitfield u16 See below.
sx, sy, sz >= 0 u32 x 3 Size of array dimensions.
grid_size log2(grid_size) u8 Stores log2 of grid dimensions in voxels.
num_label_bytes Any. u64 Number of bytes of the labels section. Note the labels come in at least two format types.
crc8 Any. u8 CRC8 of format_field thru num_label_bytes using polynomial 0xe7 (implicit) and 0xFF initialization.

Format Field (u16): DDSSCLLFGOOOOURR (each letter represents a bit, left is LSB)

DD: 2^(DD) = byte width of returned array (1,2,4,8 bytes)
SS: 2^(SS) = byte width of stored labels (sometimes you can store values in 2 bytes when the final array is 8 bytes)
C: 1: crack codes denote impermissible boundaries 0: they denote permissible boundaries.
LL: 0: "flat" label format, 1: fixed width pins (unused?) 2: variable width pins 3: reserved
F: whether the array is to be rendered as C (0) or F (1) order
G: Signed (if (1), data are signed int, otherwise unsigned int)
OOOO: Nth-Order of Markov Chain (as an unsigned integer, typical values 0, or 3 to 7). If 0, markov compression is disabled.
U: if 0, unique labels are sorted, else, unsorted
R: Reserved

CRC8 only covers the header. It doesn't cover the magic number or format version since those are easily human correctable if needed.

Flat Label Format

Attribute Type Description
num_unique u64 Number of unique labels in this volume.
unique_labels stored_type[num_unique] Sorted ascending array of all unique values in image, stored in the smallest data type that will hold them.
cc_per_grid smallest_type(sx * sy)[sz] Array containing the number of CCL IDs in each grid (usually a z-slice).
cc_to_labels smallest_type(num_labels)[sum(cc_per_grid)] Array mapping CCL IDs to their proper value by indexing the unique labels array.

Flat labels are random access read, allow efficient reading of unique labels, efficient remapping, and efficient search for a given label's existence. Since the connected component labels can often use a smaller byte width than the unique values, even noise arrays can see some value from compression.

Encoding flat labels is fast.

Condensed (Variable Width) Pins Label Format

Attribute Type Description
background_color stored_data_width Background color of image.
num_unique u64 Number of unique labels in this volume.
unique_labels stored_type[num_unique] Sorted ascending array of all unique values in image, stored in the smallest data type that will hold them.
cc_per_grid smallest_type(sx * sy)[sz] Array containing the number of CCL IDs in each grid (usually a z-slice).
fmt_byte u8 00CCDDNN DD: 2^(DD) is the depth width NN: 2^(NN) is the num pins width, CC: 2^(CC) is the single components width.
pin_section Bitstream to end of labels section. Contains pin information.

PIN SECTION: | PINS FOR LABEL 0 | PINS FOR LABEL 1 | ... | PINS FOR LABEL N |

PINS: | num_pins | INDEX_0 | INDEX_1 | ... | INDEX_N | DEPTH_0 | DEPTH_1 | ... | DEPTH_N | num_single_labels | CC 0 | CC 1 | ... | CC N |

Both num_pins and num_single_labels use the num_pins_width.

Note that INDEX_0 to INDEX_N are stored with a difference filter applied to improve compressibility.

A pin (color, position, depth) is a line segment that joins together multiple connected component IDs and labels them with a color (an index into UNIQUE LABELS) in order to use 3D information to compress the labels as compared with the flat label format. Pins are slow to compute but fast to decode, however random access is lost (a full scan of the labels section is needed to decode a subset of crack codes). The most frequent pin is replaced with a background color. Like with flat, efficient reading of unique labels, efficient remapping, and search are supported.

Depending on the image statistics and quality of the pin solver, pins can be much smaller than flat or larger (some heuristics are used to avoid this case). An excellent example of where pins do well is a binary image where remarkable savings can be achieved in the labels section (though overall it is probably a small part of the file).

For very short pins (e.g. depth 0 or 1) that take more bytes to record than simply listing the corresponding CC label, we list the CC label instead. This calculation is made depending on the dimensions of the image and the max pin depth, and the byte width of the CCL labels.

Example calculation. For a 512 x 512 x 32 file with an average of 1000 CCL's per a slice and a maximum pin depth of 30, a pin takes 4 index + 1 depth = 5 bytes while a CCL takes 2 bytes. Therefore, depth 1 and 2 pins can be efficiently replaced with 1 and 2 CCL labels for a 60% and 20% savings respectively. CCLs are also difference coded to enhance second stage compressibility.

Fixed Width Pins (disabled)

| BACKGROUND COLOR (STORED_DATA_WIDTH) | NUM_LABELS (u64) | UNIQUE LABELS (NUM_LABELS \* STORED_DATA_WIDTH) | PIN SECTION |

PIN SECTION: |PIN0|PIN1|PIN2|...|PINN| PIN: |LABEL|INDEX|DEPTH|

A fixed width variant of pins has also been developed but is not enabled. It frequently is not significantly smaller than flat outside of special circumstances such as a binary image. An advantage this format would have over condensed is that the pins can be sorted and searched rapidly by index, which reduces the amount of reading one might have to do on an mmapped file. Please raise an issue if this seems like something that might be useful to you.

Crack Code Format

CRACK CODE: MARKOV MODEL | CHAIN 0 | CHAIN 1 | ... | CHAIN N |

CHAIN: | BEGINNING OF CHAIN INDEX (sizeof(sx * sy)) | BIT PACKED MOVES (2 bits each) |

MARKOV MODEL (if enabled): priority order of moves UDLR packed per a byte. 4^order bytes.

The BEGINNING OF CHAIN INDEX (BOC) locates the grid vertex where the crack code will begin. Vertices are the corners of the pixel grid, with 0 at the top left and sx*sy-1 at the bottom right (fortran order).

The crack code is a NEWS code (up,right,left,down). Impossible combinations of directions are used to signal branching and branch termination. The next chain begins in the next byte when a termination signal causes the current branch count to reach zero.

There may be ways to further improve the design of the crack code. For example, by applying a difference filter a few more percent compression under gzip can be obtained. In the literature, there are other shorter codes such as a left,right,straight (LRS) code and fancy large context compressors that can achieve fewer than one bit per a move.

Boundary Structure: Crack Code

Our different approach is partially inspired by the work of Zingaretti et al. [2]. We represent the boundary not by border voxels, but by a "crack code" that represents the edges between voxels. This code can be thought of as directions to draw edges on a graph where the vertices are where the corners of four pixels touch and the edges are the cracks in between them.

Since this regular graph is 4-connected, each "move" in a cardinal direction can be described using two bits. To represent special symbols such as "branch" and "terminate", an impossible set of instructions on an undirected graph such as "left-right" or "up-down" can be used (occupying 4 bits). In order to avoid creating palendromic sequences such as (3, 0, 3) meaning (down, branch) but can be read (terminate, down), we can use the left-right impossible directions to rewrite it as (3, 2, 1).

While the image is 3D, we treat the image in layers because working in 3D introduces a large increase in geometric complexity (a cube has 6 faces, 12 edges, and 8 corners while a square has 4 edges and 4 corners). This increase in complexity would inflate the size of the crack code and make the implementation more difficult.

Label Map: Method of Pins

Each 2D CCL region must has a label assigned. Due to the 2D nature of the crack code, we cannot use 3D CCL. However, for example, a solid cube of height 100 would need 100 labels to represent the same color on every slice as in Compresso.

It is still possible to reduce the amount of redundant information even without 3D CCL. For each label, we find a set of vertical line segments ("pins") that fully cover the label's 2D CCL regions. Sharp readers may note that this is the NP-hard set cover problem.

Once a reasonably small or minimal set of pins are found, they can be encoded in two forms:

Condensed Form: [label][num_pins][pin_1][pin_2]...[pin_N] Fixed Width Form: [label][pin_1][label][pin_2]...[label][pin_N] Pin Format: [linear index of pin top][number of voxels to bottom]

Fixed width example with label 1 with a pin between (1,1,1) and (1,1,5) on a 10x10x10 image: [1][111][4]

An alternative formulation [label][idx1][idx2] was shown in an experiment on connectomics.npy.cpso to compress slightly worse than Compresso labels. However, this alternative formulation theoretically allows arbitrary pin orientations and so might be useful for reducing the overall number of pins.

The condensed format is a bit smaller than the fixed width format, but the fixed width format enables rapid searches if the set of pins are sorted by either the label (enables fast label in file) or the likely more useful sorting by top index to filter candidate pins when performing random access to a z-slice.

References

  1. Matejek, B., Haehn, D., Lekschas, F., Mitzenmacher, M., Pfister, H., 2017. Compresso: Efficient Compression of Segmentation Data for Connectomics, in: Descoteaux, M., Maier-Hein, L., Franz, A., Jannin, P., Collins, D.L., Duchesne, S. (Eds.), Medical Image Computing and Computer Assisted Intervention − MICCAI 2017, Lecture Notes in Computer Science. Springer International Publishing, Cham, pp. 781–788. https://doi.org/10.1007/978-3-319-66182-7_89

  2. Zingaretti, P., Gasparroni, M., Vecci, L., 1998. Fast chain coding of region boundaries. IEEE Transactions on Pattern Analysis and Machine Intelligence 20, 407–415. https://doi.org/10.1109/34.677272

  3. Freeman, H., 1974. Computer Processing of Line-Drawing Images. ACM Comput. Surv. 6, 57–97. https://doi.org/10.1145/356625.356627

Download files

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

Source Distribution

crackle_codec-0.45.0.tar.gz (139.3 kB view details)

Uploaded Source

Built Distributions

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

crackle_codec-0.45.0-cp315-cp315-win_amd64.whl (598.7 kB view details)

Uploaded CPython 3.15Windows x86-64

crackle_codec-0.45.0-cp315-cp315-musllinux_1_2_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.15musllinux: musl 1.2+ x86-64

crackle_codec-0.45.0-cp315-cp315-musllinux_1_2_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.15musllinux: musl 1.2+ ARM64

crackle_codec-0.45.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (526.7 kB view details)

Uploaded CPython 3.15manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

crackle_codec-0.45.0-cp315-cp315-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (506.3 kB view details)

Uploaded CPython 3.15manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

crackle_codec-0.45.0-cp315-cp315-macosx_11_0_arm64.whl (532.2 kB view details)

Uploaded CPython 3.15macOS 11.0+ ARM64

crackle_codec-0.45.0-cp315-cp315-macosx_10_15_x86_64.whl (557.6 kB view details)

Uploaded CPython 3.15macOS 10.15+ x86-64

crackle_codec-0.45.0-cp314-cp314t-win_amd64.whl (605.5 kB view details)

Uploaded CPython 3.14tWindows x86-64

crackle_codec-0.45.0-cp314-cp314t-musllinux_1_2_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

crackle_codec-0.45.0-cp314-cp314t-musllinux_1_2_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

crackle_codec-0.45.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (528.8 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

crackle_codec-0.45.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (506.1 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

crackle_codec-0.45.0-cp314-cp314t-macosx_11_0_arm64.whl (537.8 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

crackle_codec-0.45.0-cp314-cp314t-macosx_10_15_x86_64.whl (565.4 kB view details)

Uploaded CPython 3.14tmacOS 10.15+ x86-64

crackle_codec-0.45.0-cp314-cp314-win_amd64.whl (598.7 kB view details)

Uploaded CPython 3.14Windows x86-64

crackle_codec-0.45.0-cp314-cp314-musllinux_1_2_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

crackle_codec-0.45.0-cp314-cp314-musllinux_1_2_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

crackle_codec-0.45.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (528.2 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

crackle_codec-0.45.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (505.9 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

crackle_codec-0.45.0-cp314-cp314-macosx_11_0_arm64.whl (528.7 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

crackle_codec-0.45.0-cp314-cp314-macosx_10_15_x86_64.whl (557.6 kB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

crackle_codec-0.45.0-cp313-cp313-win_amd64.whl (583.2 kB view details)

Uploaded CPython 3.13Windows x86-64

crackle_codec-0.45.0-cp313-cp313-musllinux_1_2_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

crackle_codec-0.45.0-cp313-cp313-musllinux_1_2_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

crackle_codec-0.45.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (527.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

crackle_codec-0.45.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (504.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

crackle_codec-0.45.0-cp313-cp313-macosx_11_0_arm64.whl (528.4 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

crackle_codec-0.45.0-cp313-cp313-macosx_10_13_x86_64.whl (557.1 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

crackle_codec-0.45.0-cp312-cp312-win_amd64.whl (583.1 kB view details)

Uploaded CPython 3.12Windows x86-64

crackle_codec-0.45.0-cp312-cp312-musllinux_1_2_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

crackle_codec-0.45.0-cp312-cp312-musllinux_1_2_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

crackle_codec-0.45.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (527.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

crackle_codec-0.45.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (505.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

crackle_codec-0.45.0-cp312-cp312-macosx_11_0_arm64.whl (528.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

crackle_codec-0.45.0-cp312-cp312-macosx_10_13_x86_64.whl (557.1 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

crackle_codec-0.45.0-cp311-cp311-win_amd64.whl (581.0 kB view details)

Uploaded CPython 3.11Windows x86-64

crackle_codec-0.45.0-cp311-cp311-musllinux_1_2_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

crackle_codec-0.45.0-cp311-cp311-musllinux_1_2_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

crackle_codec-0.45.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (521.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

crackle_codec-0.45.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (502.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

crackle_codec-0.45.0-cp311-cp311-macosx_11_0_arm64.whl (521.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

crackle_codec-0.45.0-cp311-cp311-macosx_10_9_x86_64.whl (561.2 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

crackle_codec-0.45.0-cp310-cp310-win_amd64.whl (580.2 kB view details)

Uploaded CPython 3.10Windows x86-64

crackle_codec-0.45.0-cp310-cp310-musllinux_1_2_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

crackle_codec-0.45.0-cp310-cp310-musllinux_1_2_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

crackle_codec-0.45.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (522.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

crackle_codec-0.45.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (500.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

crackle_codec-0.45.0-cp310-cp310-macosx_11_0_arm64.whl (519.4 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

crackle_codec-0.45.0-cp310-cp310-macosx_10_9_x86_64.whl (560.1 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

crackle_codec-0.45.0-cp39-cp39-win_amd64.whl (581.2 kB view details)

Uploaded CPython 3.9Windows x86-64

crackle_codec-0.45.0-cp39-cp39-musllinux_1_2_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

crackle_codec-0.45.0-cp39-cp39-musllinux_1_2_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARM64

crackle_codec-0.45.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (523.1 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

crackle_codec-0.45.0-cp39-cp39-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (499.3 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

crackle_codec-0.45.0-cp39-cp39-macosx_11_0_arm64.whl (519.5 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

crackle_codec-0.45.0-cp39-cp39-macosx_10_9_x86_64.whl (559.8 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

File details

Details for the file crackle_codec-0.45.0.tar.gz.

File metadata

  • Download URL: crackle_codec-0.45.0.tar.gz
  • Upload date:
  • Size: 139.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.3

File hashes

Hashes for crackle_codec-0.45.0.tar.gz
Algorithm Hash digest
SHA256 9715d4dd91ad13e39c804663aba67324f0475bbda2140e15eca3d3dab1271967
MD5 94f0a56e9fca7f7ed449e6a11c77dce2
BLAKE2b-256 324bc7ac32780ac0da061aa6bf6eb7f9c0ee9e2d9cea7eb80de6b6406b8a0e83

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp315-cp315-win_amd64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp315-cp315-win_amd64.whl
Algorithm Hash digest
SHA256 c86b17fdcce9a33fa4029d62486b3e6b32adc68f6143a783dff7ff0b2fc50cfb
MD5 2e7286e71e2b3a1f645a3e4246aeb2e2
BLAKE2b-256 ff5c50b7f9d23598e9ba1099ad9bee2ee5acb011f3900bf11a4834cc6367679c

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp315-cp315-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp315-cp315-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9e503edb37f59da57489dce49286d89fe0e040383ddccc046aa1417f3aeace33
MD5 f5caf6260c1eef6bf5fb68f4e779910f
BLAKE2b-256 25353bdc698ad9852a53df5d643a4e59cc9c2645ea85001392311b2a8745437c

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp315-cp315-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp315-cp315-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 203867fb532ff17500a1f3e48175b3031fd17e28383f94676f275bb7bf9c9430
MD5 6d4c433a236eb743df60fe772b3ccfb5
BLAKE2b-256 0b1d01af37eb45a205c8cdcc9939d91c3eed601c4cb291b2700168ffc20dc25f

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fe2eba5fd2f83fedd73c3db36b81c3d2a3c30ab76e64d692aa7a17fc1f08bb2d
MD5 7720772440c062a558525cb8598fe25a
BLAKE2b-256 cfb6ecd978e12769d3c112cfbeab964ab2601653bec3cfedcc23dc95f8bbd48f

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp315-cp315-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp315-cp315-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 47b7445578e010526b52306d4f0512a1e8fc34f859ab531a62a66ef4aed38daf
MD5 0553ac85f63b539e31e5ccaa94e21d3a
BLAKE2b-256 6c54285d76f62cb6b926e9875722a3576d80d3155cca00989d3dd16a7807bc27

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp315-cp315-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp315-cp315-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ad6ef9988b7d79255b2e0741891172e6b1153be2168fd587685154d2520a390c
MD5 3e093bf760599bc0475c13d0673605c3
BLAKE2b-256 ef887252817b1be8e25f83209774e128cd79fb17530e2a9d42fb338bd18cfbf1

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp315-cp315-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp315-cp315-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 9000de2181eafc8bfb3f82d9a4258973ca23d543e1fd53cc1b12a2896b198dcf
MD5 808e590d18e0f494d10b820ae8639689
BLAKE2b-256 55ab245d7d2cd6f1a5177e26e691b287125b2dd71a75f32fdd84edcae6f27344

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp314-cp314t-win_amd64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 51475d389dd42ae42d19987d8ff6eee07ec6ffc7001a21411b7a882ac58c52a4
MD5 ca8f6ca1fdf8ee0f947f4cd96891fe97
BLAKE2b-256 8b5f680a9d9b3bbeb189482716a12a35a06c7976e054a8249b03bdf61e42afc7

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 57fe6520e812d7b48a5d88d6e7dd074448f2f03979123206f98f560cd10aa42c
MD5 5db43ff20cdba1a9938082298022962b
BLAKE2b-256 50d6572192db8f53bce85b1eede9dcaeb5f8473bbc735b6c556b06a6a354a364

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 34d946804a19c55fe6acc8b0f6af053964dca44f6cf0a306b7564ed18927a0f8
MD5 7af906d3f793d51e9215e983b43364cb
BLAKE2b-256 6a750c58f4a41b7425304cdc5eca1cef5c40f7d76aeb295354d2f74663b4b042

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 22b7458d494cdbde5facafc2de7b1675e623f1cb3ff99a71bcbee47359216688
MD5 b4d60e6614aa6b8f73a1eecd66879958
BLAKE2b-256 0717bfb2789bd3125b13db92188c4016aa282d120b1f7ca175a4d98ec731720b

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 edd14c26ef95742e71d94820931f9250977c6610d07a5fbaf73154d460b24b2c
MD5 a612671d7113a47cd843ab8147d96bad
BLAKE2b-256 511932dc50c64a20ad66486ac977395afa4c61b84a602e5280d3cc10d4104615

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 63695ae1d15134ad35c388764439992a0bc7a09dd1ed8b878ad21af857cc40af
MD5 03ba24c6151d1ce0df8e8e63f4b22117
BLAKE2b-256 233b0a44f27809be4395f82ff0ce705e654b61bad2fb5ed3803ecee8e25d6ceb

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp314-cp314t-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp314-cp314t-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 7e37dc8dca3befcb4fdc9b4244dd4070b00c5fb9ebe5b72291a976108f2b1de2
MD5 0b68912c69c3439e218692f2ec0be1eb
BLAKE2b-256 ff58bd2bf3b41676e7506b12d0d38097e758d7a8b557479626797bc9c854105e

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 36965920a28e04f4fac670823feaa4a5905764f47e6ae087e543d8e59024ff5d
MD5 9f357469d2c9385d4981adc500c4e1cd
BLAKE2b-256 9343f19b56ece164b576fa35a99c5f2eafef41026a00a38e2d7014cea7191c19

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7394e58eba1ada3aa4216f755bcb50ba82ddf47a25a6908294677c7e7bb15e71
MD5 8eb0313d6e50dca3a68764552143133f
BLAKE2b-256 9c7a4261ab742c363f7a5150e46fdd8eb99b9949a4f91514ded9355be40d3969

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 3310623e1c0517e8282393fff4794dd90da57369f0165a6a7428f141826853df
MD5 492883f4617b958a9e30f1e4818898a2
BLAKE2b-256 90ad0fb4dfa7e2b5c6aa361b78b7e3f3b00105df584d00c6d9fcb1aa645b1510

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6373ca51fdf4588746b78a422c68d0ea23a132ee3a9219a6f6c8ca88dc6c3c38
MD5 764a20488225c4f2bf41347bb2ad7c86
BLAKE2b-256 12d06b892292201a8fa7690c33a51b4dd827d3599a15f9b2946661f138100373

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d873fa0b220b85fcc92291a139ec8498067336325c8bf4bd72e2a6a858610f93
MD5 bbe5ec6ea5c8a46afe920eb0136bdc72
BLAKE2b-256 7ee3a638ac1fe8f91bf673d42fb2e050f64452c1e68c6bf78b17985bb5d051a3

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e0c90305526503a94404844d4520789c8608eb3f4de10330dcd829797f5230fc
MD5 eafdec97ff4227ab29998004a365fdf9
BLAKE2b-256 8604de1204d25e7be4da64584fb0e218f74779c20c89f62af0e6588a539ef265

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 089583c1cdab2b2ac969c5c5c79f191839a10cf0d93566407b03f3b9c51cb383
MD5 49eab09e38a3b65431ea9217b9eadd72
BLAKE2b-256 0ffabb2f4d427eecccfc76ee273bd61e6e244147c547b767babd1b0b4091b8c3

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 05ee23b05e9d3288cf2a7c7b34dc2a5a7efbe61ffdf877edcb07fbad509c2505
MD5 1b61a65b10a4de6f375c9d6191c9bbdb
BLAKE2b-256 6b6785fda9c9646e19c101cf94b52cd10ea658f7e27be303a78903fcc87872fd

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4c656eaf977a93975c5d7b31aa190b5c00a91daada2e81e71910462582a6f9b9
MD5 b1a19632f31fa805acd45456b1563cff
BLAKE2b-256 f3670053c65e6bdf47d1a8e881b10e94472afbad9609deeb9f292bcaf1a6c680

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 561eb3af5b9ba8fce891a5778876a0d2a85b65240b70ff1103f977f2335aee73
MD5 74318e976aecb1e62cb0740abf642f4f
BLAKE2b-256 91a7dc4f0a6f460c2a81ee164526551bbe44619b901216b96d04806a893442ac

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c9b2928375fa546f4517fd67d32734341b6e9add8319df2dc8deb61468ad596f
MD5 a7f47fe3a57e954d467b279eb916531b
BLAKE2b-256 19dcdb1c2c4a09c2f72b3d674ec2f4c3f042147d25e4d46973b4474e0a1cd756

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 11842458aaa5cd03dad9771e64a368e252472e50adc92547b6c50bfb9e36d8a9
MD5 dec10abbfefb7a6ce15a42e0fbc94df7
BLAKE2b-256 6aa8ab65da4bbe6dbbc9f1bdf49123178e59c7665d0aaefd9aa2b2aeef1cde15

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 596dd4e97f2617b72667271ee7b83b1ace661d7d5ad93fb2ba9acd2d5a9fe9b0
MD5 ae6b8bfb2be50e700e82384543a9d9cd
BLAKE2b-256 1c79caeb37f725d9b2b729401cf891111930d81d08fad90cb25dc96bb51f3950

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 3f0cad49f6f5dc86c209c4aba9ef3e7954c9203453f462c6599c360d31c53181
MD5 ac13d61c2d9453da7dddd1c16311ed3e
BLAKE2b-256 ce02f645675e1495fcc407a6aead254ec7ebe02921c25cf5d9190659505c2587

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 0955da44ab80cef1597843e4525c75aa10cb023ac07740bc9a2cbdf1e19736fa
MD5 b6843c920395b18d46a5e401dea31373
BLAKE2b-256 c2293776d6ccfdf03098fff6c5ecd2dd8e72c7377524c7518336d5fdf7871504

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a0ebba93f85761d41690ef37009d002efdd4a32a45f5ef6bc982e1e8b07eee08
MD5 672197b603512d08702367fb91c080bb
BLAKE2b-256 669b997e1dadb0e766979ad5fa45762be9c228a8692e9ff9306573b6a8d4e060

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f7b96f4f95048c6d68e7ea2ae1bdd42b40e6b399b1b7d9f67d461e7f928a6505
MD5 b6be71dd5c7ea39680ec57a354f2138f
BLAKE2b-256 403fff370680366e81c545b5d3dbbeb29d8c993cc5328163e50211b06f9e7bc8

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c54c337ceeaa9017f61c218916d07d71078c2e738b62d1a21a216c743723d64f
MD5 0bbc8ceec127ef77f1a80686f67ca194
BLAKE2b-256 ac370c6ff2b87542e55324f1e5de2e6977d47f78d226745cc314956c173af14a

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 011a4070a1aa9ee60c170aa2e24cda7177ecea21b30b8c278f0d566e06d3a46b
MD5 9212ddb9c6a2f6a99362bba23033f403
BLAKE2b-256 c70ba7ed0a1eda1e96fc459d41e13a0a481f852e95ecbb89f2f3aaf703fea230

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9af4daac8fc54fa2f55b9eb6181a4ace56e568c08576e198c30344b0b26b8c12
MD5 fe3e07f8223519118ed5aad12d6e11ec
BLAKE2b-256 4b1f70edcca13184f7af3f7a59c5a26fd8efec37745ac7e93633f63dafce5f3d

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 5047e456eb0d13f9caa03db04944ebf13cb5241a340ed9d25222a6c2f30ffa39
MD5 a96aae43893bfead924cb1b1c5528cba
BLAKE2b-256 a88f8da163d2bc730279879b12844439827d0bd289ff9a2969eb129d9ab937f2

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 4ad1a9bdf9beec87e2b343f6f424dc39de87c413a57f78a0bee8c1e4cf8b4fa9
MD5 44b6f0d317f7db425be74f70726e4805
BLAKE2b-256 448df26f583b92285df92242889188f4d01b30d7f81cf00086754840512ec409

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 227423567c38676391b8577c8cb9eb7c494e71f31ab198e54f430871c7608fb0
MD5 d0c4862261ac3d59d782fefb6de9429c
BLAKE2b-256 7ac338ae05be58dac661a7e1bfdce91d1ad0339bbfddecbc769ad2e07dd664c9

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 859dec20ea72797515c8351542f84501ef94661a61152c6c37a0a988a0390668
MD5 f291a9aea0d4835e45e1e3e0b3c73070
BLAKE2b-256 c7e7b2fd78106df16e5fb801c31fd5e20d49c971ee5bdf615f0e393bfb584646

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 07de238a2919bc0c5ffe7b5eb2b11150d50d81de3d88ace75899380bcc690240
MD5 b8ecef381b4f38d17d99dda28250e270
BLAKE2b-256 01dec2085180098ebe7093e56f086f6103a63b25eb9473f036419712fb891884

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c38c628d73fe0b2c54af554cd306eda48593c50f1b2c98afbed721e24e1e7667
MD5 d6f02bd61a878db873161b3fd8ab2e3c
BLAKE2b-256 b86e400b9e8de80c3830eab71f2db14a8e9dc00e78a81c67678db67a1221dcf1

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b08164ad6f84adae9d9a59500f09590cee6e29c8cacf3e09bf984a1f03b25466
MD5 e4a96fb208855736d5eebf356808f960
BLAKE2b-256 7174a8ed64764769f4f732fc57edf49874d77709e3754df7bd0931648d68b63c

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 598b62a38acfe154d56eed89838b86123a11bb071674ca602a192b1f3cf40a75
MD5 7d4b3be8587e8bab038e9e8f04a073c9
BLAKE2b-256 c140ed413477450c0ac826f72b2f9243029a593e615a5ad83af8514529bc2d5f

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 74b8deb2e3119793085d74b7c0fd47c3184d6dea72c4052b47100824d0e79c2a
MD5 219c187a3dea3ee93a66c9b96c28ea7c
BLAKE2b-256 204fa4f2c3246b2e6c52d152e707a96d13fd6062290e9b47306d6081da11ca7b

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e462acb48cf0915008950c056a2406145664f3e033d348afdc1c2d1cbbe799f5
MD5 beaa0ed25acf28ff5a1cc77215bc7a9f
BLAKE2b-256 ba397409e75b9d0ff599086d924c9f7deb059b231d8bdd5201b7e068be25297d

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 12e7b3cb34f0eeb6ff94e2908920adc3b82acd86a3386ed29585623656ce24cc
MD5 06d9fe65584e6ad94c317f5bdf87cb8a
BLAKE2b-256 b8ecd9e71b12456c2bb0eb26b96a7b8789499d647fc160db3cd3111bddc14e95

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2307586c179a5cd83db46df4967ab6a894b59173055d2d63a988df840dc544f7
MD5 ec2ee715c58638e688e38d4836f6c317
BLAKE2b-256 88d817da316c13198b6425164d0154f85663b88b7cbe3c8ec7788054ff2b844a

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 60b032c4be1f40bd9a293d1feb698cb9f8c1c07cab9778b6a877959e5f16b104
MD5 af68617c2e9715b4223a7f6887c872e8
BLAKE2b-256 aad7e38c8c6adecac5a772ef5cdfe107881336bd68372c14fd6ae15108074329

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c4c5ab031d7c6f128966f9ca880356652a7e6ef33a1827d19147af8dadacd289
MD5 22256c9409baa9bb93f7ffcae779e244
BLAKE2b-256 91dade9b9b492c22584810395c7b5dfdee14b118310738e84453984bdf74c8d5

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 acdb9cd9c7f70ab311bfd0dfd956d26bf368481da11040448246ee94b40680d6
MD5 4a3a91ca288a19ca892ef75e83dbce5b
BLAKE2b-256 60b58a2b6bcdd1d25339c3564db4f23567dc51c002c951fc4f2ff634bd9b5225

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 e48c53b2acd0d8a42d2826d0c402b9a380b84f12a9d7efc445990e2fae8cc2a2
MD5 865ce7b2504062dc3defcbb27de716c7
BLAKE2b-256 420d599cc0aeaacce615cdabdad6d89f74fe3a145d857a80c49e07f3a7801f12

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9ef46cf91ebf12b499663f39a1b72c4880803c736274b25c6c791950e0d4b1a2
MD5 b1320ab4276ce42ec89e78b8d51dbd16
BLAKE2b-256 67057f252763bf0c0b63ac3b3366c3d3872bf957a6f2b0cc47d751b12af23ad3

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp39-cp39-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 ab58b31e351720dd378aa46fc1af5d333ff78aece8bdb260779550d3fe18159d
MD5 ed61d8034fa05a40418c8f2eb3fb55f2
BLAKE2b-256 21c27a1df0761d6cd1964b36950be230d5b7af52d17a4f85dbc4f0def6630745

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cb26f5a2011a67b01b0af1a44fc4f1b6b830481ce0ebb891bd94736dd9907d19
MD5 912b2245eed612af66fce8262f93b2e2
BLAKE2b-256 8852353bee9a9a4649237ff5e879aebeb449bb00e63489d4b5b8aa44285831fa

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp39-cp39-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp39-cp39-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a7965f0dc34678c22a11d0a292153c2575857309dee3b5c3d655f5c57bf5b15e
MD5 8f7e0c032ea595529ce38af1f43e3312
BLAKE2b-256 93b78bbd04f44c40f433243c15542638f7f2deed626b9e2ee3df3ffd4b70de1a

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7e2895ce0a99b07edd54e35770fe75d756218316bc7a3b373d4db274b6bb9aec
MD5 14360e7b568c60f3f13d7f4af9756f4c
BLAKE2b-256 92adc0f262cb8054c97eeee545eb012812fbce047511bf114c34ced07ba39d79

See more details on using hashes here.

File details

Details for the file crackle_codec-0.45.0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for crackle_codec-0.45.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d7f42338efad56c7870039111c0d19e0887b8ce8dd65a943102d2a2ed4405bfe
MD5 067835018a505c02868d8f25ab2e20e2
BLAKE2b-256 4760e4afac61aaf692ca2309119a8bcd7047e00e4d08a327df81fdd37d7f9709

See more details on using hashes here.

Release history Release notifications | RSS feed

0.47.0

57 files

0.46.0

57 files

This release

0.45.0 This release

57 files

0.44.0

57 files

0.43.0

36 files

0.42.0

36 files

0.40.0

36 files

0.39.0

36 files

0.38.0

36 files

0.37.0

36 files

0.36.1

36 files

0.36.0

26 files

0.35.1

26 files

0.35.0

26 files

0.34.1

26 files

0.34.0

26 files

0.33.0

26 files

0.32.0

26 files

0.31.0

26 files

0.30.2

26 files

0.30.1

26 files

0.30.0

31 files

0.29.2

31 files

0.29.1

31 files

0.29.0

23 files

0.28.1

31 files

0.28.0

31 files

0.27.0

31 files

0.26.0

31 files

0.25.0

31 files

0.24.0

31 files

0.23.0

31 files

0.22.0

31 files

0.21.0

31 files

0.20.0

31 files

0.18.0

31 files

0.17.3

39 files

0.17.2

1 file

0.17.1

39 files

0.17.0

39 files

0.16.0

39 files

0.15.0

34 files

0.14.0

34 files

0.13.1

34 files

0.13.0

27 files

0.11.0

27 files

0.10.0

27 files

0.9.0

26 files

0.8.0

27 files

0.7.2

27 files

0.7.1

29 files

0.7.0

28 files

0.6.2

27 files

0.6.1

27 files

0.6.0

27 files

0.5.0

27 files

0.4.0

23 files

0.3.0

22 files

0.2.1

22 files

0.2.0

22 files

0.1.0

22 files

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