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
cckl --recompress remapped.ckl # save space if you masked out most of the volume

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 renumber data.ckl data_renumbered.ckl # number labels from 1 and refit
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)

# efficiently stops at the first sign that the two
# are not equal
is_equal = crackle.array_equal(binary1, binary2)
arr.array_equal(arr2) # method call for CrackleArrays

# perform voxelwise operations
# decompressing only one or a few slices
# at a time, supporting larger than ram operations
# supports: +, -, *, //, &, |, ^
#           >, >=, <, <=, ==, !=
result = arr == arr2

# efficient impl. of np.where(mask, arr, 0)
result = arr.apply_binary_mask(mask)
# boolean mask of whether these points are inside the label
mask = arr.select_enclosed_points(label, points)
# Compute the signed distance transform for sparse points in low memory
# should be exact for external points within one voxel for internal points
radii = arr.signed_distance_to_boundary(label, points, anisotropy=[32,32,40])

# 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)
arr[xs, ys, zs] # efficient fetching of fancy indexing that clusters points by z
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
arr = 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
import pyarrow.parquet as pq

arr = crackle.aload("myfile.ckl")
table = arr.to_parquet() # get metadata
pq.write_table(table, "myfile.ckl.meta.parquet", compression="zstd")

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): DDSSCLLFGOOOOUMR (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
M: if 1, the unique labels were remapped and so certain performance optimizations that rely on "clean" crack codes are not available 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

Metadata

Release files for crackle-codec 0.55.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 crackle-codec 0.55.0
File Size Uploaded Provenance Actions
crackle_codec-0.55.0.tar.gz 150.6 kB Without provenance Details for crackle_codec-0.55.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for crackle-codec 0.55.0
File Actions
crackle_codec-0.55.0-cp315-cp315-win_amd64.whl CPython 3.15 CPython 3.15 Windows x86-64 Details for crackle_codec-0.55.0-cp315-cp315-win_amd64.whl
crackle_codec-0.55.0-cp315-cp315-musllinux_1_2_x86_64.whl CPython 3.15 CPython 3.15 Linux musl 1.2+ x86-64 Details for crackle_codec-0.55.0-cp315-cp315-musllinux_1_2_x86_64.whl
crackle_codec-0.55.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.15 CPython 3.15 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details for crackle_codec-0.55.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
crackle_codec-0.55.0-cp315-cp315-macosx_11_0_arm64.whl CPython 3.15 CPython 3.15 macOS 11.0+ ARM64 Details for crackle_codec-0.55.0-cp315-cp315-macosx_11_0_arm64.whl
crackle_codec-0.55.0-cp315-cp315-macosx_10_15_x86_64.whl CPython 3.15 CPython 3.15 macOS 10.15+ x86-64 Details for crackle_codec-0.55.0-cp315-cp315-macosx_10_15_x86_64.whl
crackle_codec-0.55.0-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details for crackle_codec-0.55.0-cp314-cp314t-win_amd64.whl
crackle_codec-0.55.0-cp314-cp314t-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64 Details for crackle_codec-0.55.0-cp314-cp314t-musllinux_1_2_x86_64.whl
crackle_codec-0.55.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details for crackle_codec-0.55.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
crackle_codec-0.55.0-cp314-cp314t-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 Details for crackle_codec-0.55.0-cp314-cp314t-macosx_11_0_arm64.whl
crackle_codec-0.55.0-cp314-cp314t-macosx_10_15_x86_64.whl CPython 3.14 CPython 3.14 free-threading macOS 10.15+ x86-64 Details for crackle_codec-0.55.0-cp314-cp314t-macosx_10_15_x86_64.whl
crackle_codec-0.55.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details for crackle_codec-0.55.0-cp314-cp314-win_amd64.whl
crackle_codec-0.55.0-cp314-cp314-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ x86-64 Details for crackle_codec-0.55.0-cp314-cp314-musllinux_1_2_x86_64.whl
crackle_codec-0.55.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details for crackle_codec-0.55.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
crackle_codec-0.55.0-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details for crackle_codec-0.55.0-cp314-cp314-macosx_11_0_arm64.whl
crackle_codec-0.55.0-cp314-cp314-macosx_10_15_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.15+ x86-64 Details for crackle_codec-0.55.0-cp314-cp314-macosx_10_15_x86_64.whl
crackle_codec-0.55.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for crackle_codec-0.55.0-cp313-cp313-win_amd64.whl
crackle_codec-0.55.0-cp313-cp313-musllinux_1_2_x86_64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-64 Details for crackle_codec-0.55.0-cp313-cp313-musllinux_1_2_x86_64.whl
crackle_codec-0.55.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details for crackle_codec-0.55.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
crackle_codec-0.55.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details for crackle_codec-0.55.0-cp313-cp313-macosx_11_0_arm64.whl
crackle_codec-0.55.0-cp313-cp313-macosx_10_13_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.13+ x86-64 Details for crackle_codec-0.55.0-cp313-cp313-macosx_10_13_x86_64.whl
crackle_codec-0.55.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for crackle_codec-0.55.0-cp312-cp312-win_amd64.whl
crackle_codec-0.55.0-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details for crackle_codec-0.55.0-cp312-cp312-musllinux_1_2_x86_64.whl
crackle_codec-0.55.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details for crackle_codec-0.55.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
crackle_codec-0.55.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details for crackle_codec-0.55.0-cp312-cp312-macosx_11_0_arm64.whl
crackle_codec-0.55.0-cp312-cp312-macosx_10_13_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.13+ x86-64 Details for crackle_codec-0.55.0-cp312-cp312-macosx_10_13_x86_64.whl
crackle_codec-0.55.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for crackle_codec-0.55.0-cp311-cp311-win_amd64.whl
crackle_codec-0.55.0-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details for crackle_codec-0.55.0-cp311-cp311-musllinux_1_2_x86_64.whl
crackle_codec-0.55.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details for crackle_codec-0.55.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
crackle_codec-0.55.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details for crackle_codec-0.55.0-cp311-cp311-macosx_11_0_arm64.whl
crackle_codec-0.55.0-cp311-cp311-macosx_10_9_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.9+ x86-64 Details for crackle_codec-0.55.0-cp311-cp311-macosx_10_9_x86_64.whl
crackle_codec-0.55.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for crackle_codec-0.55.0-cp310-cp310-win_amd64.whl
crackle_codec-0.55.0-cp310-cp310-musllinux_1_2_x86_64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ x86-64 Details for crackle_codec-0.55.0-cp310-cp310-musllinux_1_2_x86_64.whl
crackle_codec-0.55.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for crackle_codec-0.55.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
crackle_codec-0.55.0-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details for crackle_codec-0.55.0-cp310-cp310-macosx_11_0_arm64.whl
crackle_codec-0.55.0-cp310-cp310-macosx_10_9_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.9+ x86-64 Details for crackle_codec-0.55.0-cp310-cp310-macosx_10_9_x86_64.whl
crackle_codec-0.55.0-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details for crackle_codec-0.55.0-cp39-cp39-win_amd64.whl
crackle_codec-0.55.0-cp39-cp39-musllinux_1_2_x86_64.whl CPython 3.9 CPython 3.9 Linux musl 1.2+ x86-64 Details for crackle_codec-0.55.0-cp39-cp39-musllinux_1_2_x86_64.whl
crackle_codec-0.55.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for crackle_codec-0.55.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
crackle_codec-0.55.0-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details for crackle_codec-0.55.0-cp39-cp39-macosx_11_0_arm64.whl
crackle_codec-0.55.0-cp39-cp39-macosx_10_9_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.9+ x86-64 Details for crackle_codec-0.55.0-cp39-cp39-macosx_10_9_x86_64.whl

Total release size: 33.0 MB

Release files / crackle_codec-0.55.0.tar.gz

Download URL crackle_codec-0.55.0.tar.gz
Size 150.6 kB
Tags Source
SHA-256 checksum
How to use checksums
9db49b12fb8d0ed5b97be2ff2b965d418c167c655b1961daf7e4aaf67a7b5c1a
BLAKE2b-256 checksum
How to use checksums
d0e1c461a59b3f2a78999828c5fb83553c6c029a4a88825bc30d7b12a6a01ac2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp315-cp315-win_amd64.whl

Download URL crackle_codec-0.55.0-cp315-cp315-win_amd64.whl
Size 637.4 kB
Tags CPython 3.15 Windows x86-64
SHA-256 checksum
How to use checksums
16a01ee6fbdd6a48c4c24fba40b0c74f25019a5e902d84afdf38fec3077f46d5
BLAKE2b-256 checksum
How to use checksums
98744f56453fea0ba9f3886125dd864af7fcccc231a78ba114954010e77fb994
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp315-cp315-musllinux_1_2_x86_64.whl

Download URL crackle_codec-0.55.0-cp315-cp315-musllinux_1_2_x86_64.whl
Size 1.6 MB
Tags CPython 3.15 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
679ff00598164144291a3318be7376856c3ab9ec6d4bfcbb4c36e501a41306d7
BLAKE2b-256 checksum
How to use checksums
e8134318536bbf2e509a78836437bae187f3647da30e9adb29b61d47435dfd2a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL crackle_codec-0.55.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 594.6 kB
Tags CPython 3.15 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
ff71c2550753b5b1b2957d6839e97314febd87c3dcce9c17ae3d5eabe4f15cdb
BLAKE2b-256 checksum
How to use checksums
7198efef24a79ee6163f4dc459159ec63f97d1faa460a1645c43d351d6253aea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp315-cp315-macosx_11_0_arm64.whl

Download URL crackle_codec-0.55.0-cp315-cp315-macosx_11_0_arm64.whl
Size 601.2 kB
Tags CPython 3.15 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
08d3958148307cc204331ce47e15afeb537713380c6c48f506a4f1f497a91139
BLAKE2b-256 checksum
How to use checksums
b646f779ceef7a901ab8afe9247daa31d27ef1025d3b349d2174f4297e52d908
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp315-cp315-macosx_10_15_x86_64.whl

Download URL crackle_codec-0.55.0-cp315-cp315-macosx_10_15_x86_64.whl
Size 635.8 kB
Tags CPython 3.15 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
9a6cc7e4968f1217be97bd518e6dcfa68f0c80718e62fa62827873f7d16f78c9
BLAKE2b-256 checksum
How to use checksums
cb8e47accf05609f0c0d20d7795b8b31f63217a0aff3c9ee92fac52deae64723
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp314-cp314t-win_amd64.whl

Download URL crackle_codec-0.55.0-cp314-cp314t-win_amd64.whl
Size 644.6 kB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
9dc072bb2a2dfe74b2318cf70796aca0c680133793153889b5947cd7b9ccd530
BLAKE2b-256 checksum
How to use checksums
f92302d1bfc4bc2b47abfc7e3560ccbc9c2f842cbd244fa40b85365efd0fe2a3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp314-cp314t-musllinux_1_2_x86_64.whl

Download URL crackle_codec-0.55.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Size 1.6 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
574473dc1683bee9ed7afa2f2fe78641cfe5bd1056ee4d835e739a30cac0c9bd
BLAKE2b-256 checksum
How to use checksums
49db6113721164ee07a6e419b761fc0efb960815b343bb346f3b353aa7fcf47f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL crackle_codec-0.55.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 601.8 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
52ce9704a0a835b35a3e62e96abf993b609ee148584aefbbee86211507ac1f1b
BLAKE2b-256 checksum
How to use checksums
a54efc175cbffb84b9e6581c2b935c1b831d114849ef0191fff203fd4bfa0b24
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp314-cp314t-macosx_11_0_arm64.whl

Download URL crackle_codec-0.55.0-cp314-cp314t-macosx_11_0_arm64.whl
Size 607.7 kB
Tags CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
631cab5770a189f208910f113ca176b96b3f62253646b8ed7e30053f6e2b286e
BLAKE2b-256 checksum
How to use checksums
5075e36a206728d6dc0bb44e2ac6477222f9da31e3e8546f3011e14c02915ee7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp314-cp314t-macosx_10_15_x86_64.whl

Download URL crackle_codec-0.55.0-cp314-cp314t-macosx_10_15_x86_64.whl
Size 644.8 kB
Tags CPython 3.14 CPython 3.14 free-threading macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
2cf0fc32675b17311bb0c64cb609af88d226fa4855752fc0b3c77b59ab50310b
BLAKE2b-256 checksum
How to use checksums
8a15dc59b550ab7f8a18a57d1c8de02a8c74a6400b42a913d8a11cea12c36c53
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp314-cp314-win_amd64.whl

Download URL crackle_codec-0.55.0-cp314-cp314-win_amd64.whl
Size 637.3 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
d197fc0af5d391c8a34db0540d5e9bafd2cc0e9503372395d5d47d86e77d3f1e
BLAKE2b-256 checksum
How to use checksums
a0b8991b62c8395858481d7f0c100c1e01ce037c22c765cb2c20cd0771420a58
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp314-cp314-musllinux_1_2_x86_64.whl

Download URL crackle_codec-0.55.0-cp314-cp314-musllinux_1_2_x86_64.whl
Size 1.6 MB
Tags CPython 3.14 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
87a8b81c27222ecce4c61c5da624fe27a351faefc94f6e81f02d7cd4ac27fb74
BLAKE2b-256 checksum
How to use checksums
8722527ad22af69e9522eb902876fbaf9fe4917f06f8cf289189ec46d7e15760
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL crackle_codec-0.55.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 601.0 kB
Tags CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
50ffcceb9df3fbc662cd1fa0c99611edaef6a622b1dc49f937f007bb2e8cfe44
BLAKE2b-256 checksum
How to use checksums
23c67d035208a8ffbda4f85de3b2be1c60cfbe0ef5cbc12e320296605544e70f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp314-cp314-macosx_11_0_arm64.whl

Download URL crackle_codec-0.55.0-cp314-cp314-macosx_11_0_arm64.whl
Size 598.1 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
9032cdbe39f6ba501ffbe0117676cc842fa2de5a754052a9d250894d5452dadb
BLAKE2b-256 checksum
How to use checksums
c80b9fd9a0a2553001fc24fd42d83697c17e174a9379b9c44979ecfdad91ec10
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp314-cp314-macosx_10_15_x86_64.whl

Download URL crackle_codec-0.55.0-cp314-cp314-macosx_10_15_x86_64.whl
Size 635.8 kB
Tags CPython 3.14 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
5ef0e6dee0cf03bed4235ebd9c8f677709cb31cc6912468c37e51a1adef02766
BLAKE2b-256 checksum
How to use checksums
a0f05f3b53766b7122f356c00070d56aeed3712b9c6df897ea34d68c17b68c6f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp313-cp313-win_amd64.whl

Download URL crackle_codec-0.55.0-cp313-cp313-win_amd64.whl
Size 621.4 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
0c83caa1426cdf7c69a4db1adfabe07b5d71f5d27f8b48bbeeef80b3fe344e30
BLAKE2b-256 checksum
How to use checksums
c39ecdf45e1a9029b3300b20effbc43504b3c5f827cb153df9148a513f41a739
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL crackle_codec-0.55.0-cp313-cp313-musllinux_1_2_x86_64.whl
Size 1.6 MB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
83a12ba143f0866ffcae892efd78aa8d15922fb4a9ad63b7e3753959b38b3bf9
BLAKE2b-256 checksum
How to use checksums
84ed1ebe25a4f6d08181eb35a12b32ba4d5fbda011840e1c14060fc4a0a191ad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL crackle_codec-0.55.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 600.2 kB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
50b3a6987fab270127a346d9de8c416e03a04a995423d5d05e94ce5447d916fa
BLAKE2b-256 checksum
How to use checksums
c5362553810d78fdf4881cc2c9b321a9f851bd2966a941d084f261e53466f8fd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL crackle_codec-0.55.0-cp313-cp313-macosx_11_0_arm64.whl
Size 597.8 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
2c648190dede0008873c04eb3649e3d405f6a612dd150b81027f2b5b5970f9a4
BLAKE2b-256 checksum
How to use checksums
eface965289a4871c977d3ebe6c261231ce13f33544e602f54ed984721ae84bb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp313-cp313-macosx_10_13_x86_64.whl

Download URL crackle_codec-0.55.0-cp313-cp313-macosx_10_13_x86_64.whl
Size 635.3 kB
Tags CPython 3.13 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
5c7ba434a9ec9748d9765881767c44b42678da44bf7bbd91903adcf23e7f2b70
BLAKE2b-256 checksum
How to use checksums
0cbb66d3ac8a362e0b2982e8c2754d9a67c27caa5043fb5cf11323d5c01f4a80
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp312-cp312-win_amd64.whl

Download URL crackle_codec-0.55.0-cp312-cp312-win_amd64.whl
Size 621.3 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
cc5b84bd4b977e2ecd403ad3a0a932d9f7aa17653fdcee290349c76811172f46
BLAKE2b-256 checksum
How to use checksums
ccf8cca1bc0a20b165278eda9e15854e599d154ed91c4b5c9ebee46b0a00e4dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL crackle_codec-0.55.0-cp312-cp312-musllinux_1_2_x86_64.whl
Size 1.6 MB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
e3a88a2d2fbf648a25a2e261ef80231747fb5a768d3953a0a4bcfd7d2ba5ee52
BLAKE2b-256 checksum
How to use checksums
94d676749c1c26c241c248798a057d593fe2d440be474d17609b2d14f433eca5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL crackle_codec-0.55.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 600.6 kB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c946ad7ed29c782e4a5c20691ecdc7736da36e4084e9b586913e71cbd1789b5c
BLAKE2b-256 checksum
How to use checksums
82c1946ab978e9f2a66cc57154f9c361ba6fab4a91fa5a0c78b40a4a20cdfb87
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL crackle_codec-0.55.0-cp312-cp312-macosx_11_0_arm64.whl
Size 597.9 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
861cc87cb12d9379a931a59e34a7f3599cbbc99bd6afb27c4c96cb721b1a1076
BLAKE2b-256 checksum
How to use checksums
b7252f0e27ce8b31012805c2d4ef1c079a82f87ac6e60ceddcc97962c39e6c91
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp312-cp312-macosx_10_13_x86_64.whl

Download URL crackle_codec-0.55.0-cp312-cp312-macosx_10_13_x86_64.whl
Size 635.2 kB
Tags CPython 3.12 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
14c145c1dbb4f4b9f0bc975a89c5170842ac37d0b64ec2d1381004aa2d1e94e4
BLAKE2b-256 checksum
How to use checksums
107707e7cbcc7b889fb3ad797eb2ebc8e3f15165dc7872ad2f46f974f4cba953
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp311-cp311-win_amd64.whl

Download URL crackle_codec-0.55.0-cp311-cp311-win_amd64.whl
Size 619.5 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
09eab18184940531b65d79c75ccd2dcb39ce0a84495aed47a6d2c1a3708d7482
BLAKE2b-256 checksum
How to use checksums
d6dbed0c8d49a3d6a03dd807c62104ac93077dd5d5df855817e7dc7a3624bcb1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL crackle_codec-0.55.0-cp311-cp311-musllinux_1_2_x86_64.whl
Size 1.6 MB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
3fb97d17d3416bcfb62201591baeba2cdc2d0630c31d62f09bcca6730f50d089
BLAKE2b-256 checksum
How to use checksums
067dd71e33f54243294e4ccc3dbc5517a5b42dca44a64ae21cad4cb9ae662b89
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL crackle_codec-0.55.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 593.9 kB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
e05ef027fc9d3a2df6a9b3cde4b0ee8c8f825ac0be595e27939da8e35c49a1c8
BLAKE2b-256 checksum
How to use checksums
6d2dd7b9a21ea5bb8e95ddde3cba63f5c15658ad5dab8850bb4f9da2f0750414
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL crackle_codec-0.55.0-cp311-cp311-macosx_11_0_arm64.whl
Size 591.5 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
1c2982248d18ac70d2aded6d6eaae36f7fd49759eaea4cdb992e7093f25e86d0
BLAKE2b-256 checksum
How to use checksums
93e0483af188676fd37f0f5f678eb2a87a7c5050f8deb523f28e24f1a822268d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp311-cp311-macosx_10_9_x86_64.whl

Download URL crackle_codec-0.55.0-cp311-cp311-macosx_10_9_x86_64.whl
Size 638.0 kB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
13bc11e28a8c4ef85eb2f4997e3a0d41d188df14189349f7b10255bc94a127e6
BLAKE2b-256 checksum
How to use checksums
9c32a9456c70a4c4bfcdd329e4249ff0124796afd967f56aaa72e5a2fd614d77
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp310-cp310-win_amd64.whl

Download URL crackle_codec-0.55.0-cp310-cp310-win_amd64.whl
Size 618.7 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
e39d0e210babcb32978cf203625057e8ccb188202ea53ffc7004f7cf752638a1
BLAKE2b-256 checksum
How to use checksums
e527827029fdc49c29a0053f5c6e6894dc7d132469e03fd06de5cfd5179a6010
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL crackle_codec-0.55.0-cp310-cp310-musllinux_1_2_x86_64.whl
Size 1.6 MB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
e973316af9b4fdef37260ff08e686e9584c523f43a8fc24bedb1d22841169d5f
BLAKE2b-256 checksum
How to use checksums
3261cc138cdd4ce58f6ddc99db18e9dcf55a51148539aa4fef5460a4ff1a5bcb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL crackle_codec-0.55.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 593.8 kB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
4aa5376f27cdaf0399607d5fc29cd0abbf41eece46fd59c039e1c6ec1a19332a
BLAKE2b-256 checksum
How to use checksums
34848d30174b79735672ab0c135fe38f44182ad1715f3dd882c783cd8f8073e7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp310-cp310-macosx_11_0_arm64.whl

Download URL crackle_codec-0.55.0-cp310-cp310-macosx_11_0_arm64.whl
Size 589.4 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d6815d1abdf9fc3bc361d1af708979ce47290d732acde1f03c7b9e5f090093eb
BLAKE2b-256 checksum
How to use checksums
33c5b4bd31d8a2744859f00abdb26aa21ae9a98215fb4b0627f0fa68b4d803c8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp310-cp310-macosx_10_9_x86_64.whl

Download URL crackle_codec-0.55.0-cp310-cp310-macosx_10_9_x86_64.whl
Size 636.7 kB
Tags CPython 3.10 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
e5d9442476b46e6913a180ddb2ba08628b03af4322f070ebab2a05a960a37e82
BLAKE2b-256 checksum
How to use checksums
20399c479cbc7d04b0902967bb57566836b2f7e44c0e052e0306bed30d56ab83
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp39-cp39-win_amd64.whl

Download URL crackle_codec-0.55.0-cp39-cp39-win_amd64.whl
Size 619.8 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
1963d484b68818d2c6afde8776e566d0c3ac13276030a38f9f3f866d0c59ac5b
BLAKE2b-256 checksum
How to use checksums
dfd65d67b8d44ca89a18261ebb0e6dc3979bb8ef0c4fb766fe5e604a65f958dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp39-cp39-musllinux_1_2_x86_64.whl

Download URL crackle_codec-0.55.0-cp39-cp39-musllinux_1_2_x86_64.whl
Size 1.6 MB
Tags CPython 3.9 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
a9d06770eca8bf1b7e43fdb34c98620759da7f8a2d090707bd40f83683bb40b2
BLAKE2b-256 checksum
How to use checksums
1d063568c35850a019feaf796395c1366ff4270c727ac2c283820d32ba0ceb21
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL crackle_codec-0.55.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 593.6 kB
Tags CPython 3.9 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
10ffdd431158dae7537ef1d456cf96fa2c53c7590bd23428a170227f7e9dd3b1
BLAKE2b-256 checksum
How to use checksums
c97d3122a68dc6726f0c66a800cfc429380fd43f983986ff0fdadd432811a665
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp39-cp39-macosx_11_0_arm64.whl

Download URL crackle_codec-0.55.0-cp39-cp39-macosx_11_0_arm64.whl
Size 589.6 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4984aadc030607805ee1971f00e2b811a7235c8e528dd9da7726a8aa1bf84dd4
BLAKE2b-256 checksum
How to use checksums
9993d4f6b6eb1ecceb1b1c98b987c3e199b4c1eb50415c6de7521a0c6d724ba1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Release files / crackle_codec-0.55.0-cp39-cp39-macosx_10_9_x86_64.whl

Download URL crackle_codec-0.55.0-cp39-cp39-macosx_10_9_x86_64.whl
Size 636.5 kB
Tags CPython 3.9 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
51db3015f06fa787bc12ad9fcdfe06ef5846a12a0d0a7b7c567dfccb5b8a3e4b
BLAKE2b-256 checksum
How to use checksums
b2290ba549d1bbf0a096e929d3ed42713674c221063cfb40f6ca4ba683e42e78
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.3

Security for crackle-codec 0.55.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.

Release history Release notifications | RSS feed

This release

0.55.0 This release

41 release files No provenance

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