Skip to main content

msglc --- (de)serialize json objects with lazy/partial loading containers using msgpack or cbor

DeepWiki codecov PyPI

What

msglc is a Python library that provides a way to serialize and deserialize json objects with lazy/partial loading containers using msgpack or cbor as the serialization format.

It can be used in environments that use msgpack/cbor to store/exchange data that is larger than a few MBs if any of the followings hold.

  1. After cold storage, each retrieval only accesses part of the stored data.
  2. Cannot afford to decode the whole file due to memory limitation, performance consideration, etc.
  3. Want to combine encoded data into a single blob without decoding and re-encoding the same piece of data.

Quick Start

The supported objects need to be json compatible, including dict, list, str, int, float, bool and None. Extra types may be supported as well but not guaranteed.

Serialization

Use dump to serialize a json object to a file.

from msglc import dump

data = {"a": [1, 2, 3], "b": {"c": 4, "d": 5, "e": [0x221548313] * 10}}
dump("data.msg", data)

Use backend='python' or backend='rust' to specify the backend for serialization. By default, msgpack is used as the serialization format, to use cbor, use the corresponding packer.

from msglc import dump
from msglc.codec import CBORCodec

data = {"a": [1, 2, 3], "b": {"c": 4, "d": 5, "e": [0x221548313] * 10}}
dump("data.msg", data, backend="rust", packer=CBORCodec)

Use combine to combine several serialized files together. The combined files can be further combined.

Combine as dict

from msglc import dump, combine, FileInfo
from msglc.reader import LazyReader

dump("dict.msg", {str(v): v for v in range(1000)})
dump("list.msg", [float(v) for v in range(1000)])

combine("combined.msg", [FileInfo("dict.msg", "dict"), FileInfo("list.msg", "list")])
# support recursively combining files
# ...

# the combined file uses a dict layout
# { 'dict' : {'1':1,'2':2,...}, 'list' : [1.0,2.0,3.0,...] }
# so one can read it as follows, details in coming section
with LazyReader("combined.msg") as reader:
    assert reader["dict/101"] == 101  # also reader['dict'][101]
    assert reader["list/101"] == 101.0  # also reader['list'][101]

Combine as list

from msglc import dump, combine, FileInfo
from msglc.reader import LazyReader

dump("dict.msg", {str(v): v for v in range(1000)})
dump("list.msg", [float(v) for v in range(1000)])

combine("combined.msg", [FileInfo("dict.msg"), FileInfo("list.msg")])
# support recursively combining files
# ...

# the combined file uses a list layout
# [ {'1':1,'2':2,...}, [1.0,2.0,3.0,...] ]
# so one can read it as follows, details in coming section
with LazyReader("combined.msg") as reader:
    assert reader["0/101"] == 101  # also reader[0][101]
    assert reader["1/101"] == 101.0  # also reader[1][101]

Deserialization

Use LazyReader to read a file.

from msglc.reader import LazyReader, to_obj

with LazyReader("data.msg") as reader:
    data = reader.read()  # return a LazyDict, LazyList, dict, list or primitive value
    data = reader["b/c"]  # subscriptable if the actual data is subscriptable
    # data = reader[2:]  # also support slicing if its underlying data is list compatible
    data = reader.read("b/c")  # or provide a path to visit a particular node
    print(data)  # 4
    b_dict = reader.read("b")
    print(b_dict.__class__)  # <class 'msglc.reader.LazyDict'>
    for k, v in b_dict.items():  # dict compatible
        if k != "e":
            print(k, v)  # c 4, d 5
    b_json = to_obj(b_dict)  # ensure plain dict

Please note all data operations shall be performed inside the with block.

All data is lazily loaded, use to_obj() function to ensure it is properly read, especially when the data goes out of the with block.

If there is no need to cache the read data, pass the argument cached=False to the initializer.

from msglc.reader import LazyReader, to_obj

with LazyReader("data.msg", cached=False) as reader:
    data = to_obj(reader.read("some/path/to/the/target"))

Why

The msgpack/cbor specification and the corresponding Python library msgpack/cbor2 provide a tool to serialize json objects into binary data. However, the encoded data has to be fully decoded to reveal what is inside. This becomes an issue when the data is large and only a small part of it is needed.

msglc provides an enhanced format to embed structure information into the encoded data. This allows lazy and partial decoding of the data of interest, which can be a significant performance improvement.

How

Overview

msglc packs tables of contents and data into a single binary blob. The detailed layout can be shown as follows.

#####################################################################
# magic bytes # 20 bytes # encoded data # encoded table of contents #
#####################################################################
  1. The magic bytes are used to identify the format of the file.
  2. The 20 bytes are used to store the start position and the length of the encoded table of contents.
  3. The encoded data is the original msgpack encoded data.

The table of contents is placed at the end of the file to allow direct writing of the encoded data to the file. This makes the memory footprint small.

Buffering

One can configure the buffer size for reading and writing.

from msglc.config import configure

configure(write_buffer_size=2**23)
configure(read_buffer_size=2**16)

Combining multiple files into a single one requires copying data from one file to another. Adjust copy_chunk_size to control memory footprint.

from msglc.config import configure

configure(copy_chunk_size=2**24)  # 16 MB

Table of Contents

There are two types of containers in json objects: array and object. They correspond to list and dict in Python, respectively.

The table of contents mimics the structure of the original json object. However, only containers that exceed a certain size are included in the table of contents. This size is configurable and can be often set to the multiple of the block size of the storage system.

from msglc.config import configure

configure(small_obj_optimization_threshold=2**20)

The above configuration assigns a threshold of 1 MB, containers larger than 1 MB will be indexed in the table of contents. To achieve optimal performance, one shall configure this value according to the underlying file system.

The basic structure of the table of contents of any object is a dict with two keys: t (toc) and p (position). The t field only exists when the object is a sufficiently large container.

If all the elements in the container are small, the t field will also be omitted.

For the purpose of demonstration, the size threshold is set to 2 bytes in the following examples.

# an integer is not a container
data = 2154848
toc = {"p": [0, 5]}

# a string is not a container
data = "a string"
toc = {"p": [5, 14]}

# the inner lists contain small elements, so the `t` field is omitted
# the outer list is larger than 2 bytes, so the `t` field is included
data = [[1, 1], [2, 2, 2, 2, 2]]
toc = {"t": [{"p": [15, 18]}, {"p": [18, 24]}], "p": [14, 24]}

# the outer dict is larger than 2 bytes, so the `t` field is included
# the `b` field is not a container
# the `aa` field is a container, but all its elements are small, so the `t` field is omitted
data = {"a": {"aa": [2, 2, 2, 2, 2, 2, 2, 2, 2, 2]}, "b": 2}
toc = {
    "t": {"a": {"t": {"aa": {"p": [31, 42]}}, "p": [27, 42]}, "b": {"p": [44, 45]}},
    "p": [24, 45],
}

Due to the presence of the size threshold, the table of contents only requires a small amount of extra space.

Reading

The table of contents is read first. The actual data is represented by LazyDict and LazyList classes, which have similar interfaces to the original dict and list classes in Python.

As long as the table of contents contains the t field, no actual data is read. Each piece of data is read only when it is accessed, and it is cached for future use. Thus, the data is read lazily and will only be read once (unless fast loading is enabled).

Fast Loading

There are two ways to read a container into memory:

  1. Read the entire container into memory.
  2. Read each element of the container into memory one by one.

The first way only requires one system call, but data may be repeatedly read if some of its children have been read before. The second way requires multiple system calls, but it ensures that each piece of data is read only once. Depending on various factors, one may be faster than the other.

Fast loading is a feature that allows the entire data to be read into memory at once. This helps to avoid issuing multiple system calls to read the data, which can be slow if the latency is high.

from msglc.config import configure

configure(fast_loading=True)

One shall also configure the threshold for fast loading.

from msglc.config import configure

configure(fast_loading_threshold=0.5)

The threshold is a fraction between 0 and 1. The above 0.5 means if more than half of the children of a container have been read already, to_obj will use the second way to read the whole container. Otherwise, it will use the first way.

Detection of Long List with Small Elements

Longs lists with small elements, such as integers and floats, can be further optimized by grouping elements into blocks that are of the size of small_obj_optimization_threshold so that small reads can be avoided.

Set a trivial_size to the desired bytes to identify those long lists. For example, the following sets it to 10 bytes, long lists of integers and floats will be grouped into blocks. 64-bit integers and doubles require 8 bytes (data) + 1 byte (type) = 9 bytes.

from msglc.config import configure

configure(trivial_size=10)

Disable GC

To improve performance, gc can be disabled during (de)serialization. It is controlled by a global counter, as long as there is one active writer/reader, gc will stay disabled.

from msglc.config import configure

configure(disable_gc=True)

Default Values

from dataclasses import dataclass


@dataclass
class Config:
    small_obj_optimization_threshold: int = 2**13  # 8KB
    write_buffer_size: int = 2**23  # 8MB
    read_buffer_size: int = 2**16  # 64KB
    fast_loading: bool = True
    fast_loading_threshold: float = 0.3
    trivial_size: int = 20
    disable_gc: bool = False
    simple_repr: bool = True
    copy_chunk_size: int = 2**24  # 16MB
    numpy_encoder: bool = False
    numpy_fast_int_pack: bool = False

Development Environment

A working rust environment is required. Install it following the official guide here.

Once rust is installed, run the following command inside a Python environment.

pip install maturin
maturin develop

Alternatively, use the following.

pip install -e ".[all]"

Not all optional dependencies are universally available, some may not be available on platforms other than CPython.

Metadata

Release files for msglc 260819

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

Source distribution (sdist)

Source distribution for msglc 260819
File Size Uploaded
msglc-260819.tar.gz 46.9 kB Details

Built distributions (wheels)

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

Total release size: 8.5 MB

Release files / msglc-260819.tar.gz

Download URL msglc-260819.tar.gz
Size 46.9 kB
Tags Source
SHA-256 checksum
How to use checksums
e0d30b8d4efd3d6a05a89718346b24e34b3835797919c2fd0e235e2d1710c36d
BLAKE2b-256 checksum
How to use checksums
a2cbe660618ddfb2631c5ab997dd9c9dd3c0f96d5c581337faff38244bca9849
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Release files / msglc-260819-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL msglc-260819-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 336.0 kB
Tags Linux glibc 2.17+ x86-64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
cd3b277e63171a0190f67717a91320c5ccffb9cd7a880995327b1d81db3e184f
BLAKE2b-256 checksum
How to use checksums
53c0a4dbf2fe1ae8ced4a94803e65b375b107c4f38aaf69996284712b1d84a88
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Release files / msglc-260819-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL msglc-260819-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 332.2 kB
Tags Linux glibc 2.17+ ARM64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
4b8ee75e67ee31f097f766c0af6a5a1b46c600383d29123e45dc640e6546f684
BLAKE2b-256 checksum
How to use checksums
91c774778ad10d7cbba0b1a6223981f5eac6986f2c9597fb222ebc7f7463c9d2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Release files / msglc-260819-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL msglc-260819-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 331.1 kB
Tags CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
5377410afb0955c0da93ec0208dfe09fb97ad404f64c271d426b53d84b0b7ea8
BLAKE2b-256 checksum
How to use checksums
5803e0cef2003f5690c6a3b348e2f5351dd5af3ce11995beb496764ff41ea8cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Release files / msglc-260819-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL msglc-260819-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 331.3 kB
Tags CPython 3.15 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
a94441916f2da177053104b3bbe594f1e910f2aa448d3a1beb2c7a68891af00a
BLAKE2b-256 checksum
How to use checksums
b1968d48912bf7af0476754645fa8551193006972a3ef7ea6d922a31012b7407
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Release files / msglc-260819-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL msglc-260819-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 331.1 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
edd0d8f64a7a50e24958428acf01785e5bc48b31c7c1a033fa9fd4a9292466d9
BLAKE2b-256 checksum
How to use checksums
29dbe64822fb78bac0ea9d948f91e289e8140e0d4ba9211c541ef9cb717e5f69
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Release files / msglc-260819-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL msglc-260819-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 325.5 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
d15a2944d79a3d797fc4b7e0c0978087520bf74ca6a55c8eb6a53d0a042bd49b
BLAKE2b-256 checksum
How to use checksums
70a24da651f38a9b09d1029dc936a7bb4362dcd3f81e55cf3ac4ded51d835351
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Release files / msglc-260819-cp314-cp314-win_arm64.whl

Download URL msglc-260819-cp314-cp314-win_arm64.whl
Size 196.1 kB
Tags CPython 3.14 Windows ARM64
SHA-256 checksum
How to use checksums
dcb463ed40d78fc84d7c9329f575f31b4247e372deebe40365645137bcc960d3
BLAKE2b-256 checksum
How to use checksums
cd712121707f1e1403a6e681ddf9fd7a138539b8a0fef7d740586accfaa36ed2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Release files / msglc-260819-cp314-cp314-win_amd64.whl

Download URL msglc-260819-cp314-cp314-win_amd64.whl
Size 198.0 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
98c7b7af1c2be783b1771fe94a7d3c249be24957674a213baad45bc799c3e6f7
BLAKE2b-256 checksum
How to use checksums
53b6b389a5c770314a13188cd695fd8b95b80f1e2f980c24ab413f321cd6fc9d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Release files / msglc-260819-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL msglc-260819-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 331.3 kB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
2860242cd0f7aeb781f1af87899bd4dc0783f4228b5d9efd7f64b7d44e8fe467
BLAKE2b-256 checksum
How to use checksums
a72174fe35bee5382a9fb1f4f7dc6181807716e619529b633eddfa37282b8ae9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Release files / msglc-260819-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL msglc-260819-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 326.3 kB
Tags CPython 3.14 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
4ad8bffbb993df71db4bdf6ce5b2f74374c30e979aba97649e4866dc0b44b858
BLAKE2b-256 checksum
How to use checksums
e5f9a2c73f5faed6eafa3487c0dd84fc52c4fe45f1a506f86ce78de5f292c46c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Release files / msglc-260819-cp314-cp314-macosx_11_0_arm64.whl

Download URL msglc-260819-cp314-cp314-macosx_11_0_arm64.whl
Size 300.8 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
41c71902671886678ba86fd6b6e50e0c55cdd847a04584f6871218bac40661c9
BLAKE2b-256 checksum
How to use checksums
e170700956059c10b04af120a1475adfdbcb0e7bccc6aa90e16e4d65923f9503
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Release files / msglc-260819-cp314-cp314-macosx_10_12_x86_64.whl

Download URL msglc-260819-cp314-cp314-macosx_10_12_x86_64.whl
Size 306.3 kB
Tags CPython 3.14 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
81866df9fa4803085d60be0aab2d38df069ebe49c55cdb3117d41a6292da78f8
BLAKE2b-256 checksum
How to use checksums
7f5c4a4373902669365964a36b64df84aa1dfd33d4f17b32fce2f5a73903ac82
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Release files / msglc-260819-cp313-cp313-win_arm64.whl

Download URL msglc-260819-cp313-cp313-win_arm64.whl
Size 195.9 kB
Tags CPython 3.13 Windows ARM64
SHA-256 checksum
How to use checksums
e2f8a89a8d82e90f2b3719182ff3e9a5cad23df3e87161cc4cef549e6a6a8a76
BLAKE2b-256 checksum
How to use checksums
d0d04bfcf93b47448a41ecee838bf9028bf21ac9e4f0b4bb6310f620da5dc784
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Release files / msglc-260819-cp313-cp313-win_amd64.whl

Download URL msglc-260819-cp313-cp313-win_amd64.whl
Size 197.4 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
cb4d2532f2bb8b38b671e02441e87fd70ef9fb2b82b4a94968e5eb8834f6fecf
BLAKE2b-256 checksum
How to use checksums
257c0ec9368e797721d73c997cf58dad1ab5dcd6e5172e1454760ce547f41948
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Release files / msglc-260819-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL msglc-260819-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 330.5 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
51cc9b43fe7792c201ddbf1ec006cb8dd5eddd1dce51dac64efbfcedaedfe47a
BLAKE2b-256 checksum
How to use checksums
dbd92dea689551688db0ea8e34eaaa040b6ea7eee3fd1c91fce629886c880171
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Release files / msglc-260819-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL msglc-260819-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 325.7 kB
Tags CPython 3.13 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
4ac65613cef86d3eaecb7823671b0fb206ee5523ab93f9bdda5354643d479664
BLAKE2b-256 checksum
How to use checksums
230c586d884156785071f1b675fdbd3d193f6f89cb39855807decb49366bd925
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Release files / msglc-260819-cp313-cp313-macosx_11_0_arm64.whl

Download URL msglc-260819-cp313-cp313-macosx_11_0_arm64.whl
Size 300.0 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ad478ad7f9aebddb959dca50a9e541a7f03a30b1c7c8a3641fc0679ea0ef02a8
BLAKE2b-256 checksum
How to use checksums
e4b6a83505a45772642198008631ecba4f55eb9a096c59eaf179574c77bf3457
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Release files / msglc-260819-cp313-cp313-macosx_10_12_x86_64.whl

Download URL msglc-260819-cp313-cp313-macosx_10_12_x86_64.whl
Size 305.2 kB
Tags CPython 3.13 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
3fd23eda13ddb1428ff84ec98a58e9fa47fcc58c8af1305d9c22ee3dcda8b9a2
BLAKE2b-256 checksum
How to use checksums
cf3f96a130a29402fe8f5dbdfe9fb8de942a809234809e50b7b05c1c5fe028e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Release files / msglc-260819-cp312-cp312-win_arm64.whl

Download URL msglc-260819-cp312-cp312-win_arm64.whl
Size 196.2 kB
Tags CPython 3.12 Windows ARM64
SHA-256 checksum
How to use checksums
7108bbd456565414c33543e7bc981fe93ae4af5df0ee11954aeef9678f18a279
BLAKE2b-256 checksum
How to use checksums
003ae888ca1dfababf1739f73bfb8830646d4bf2a04225fd6c413b826fb17233
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Release files / msglc-260819-cp312-cp312-win_amd64.whl

Download URL msglc-260819-cp312-cp312-win_amd64.whl
Size 197.8 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
acced5371986c25247f9b0dee9937773dae65d632be6113ca96d684773377316
BLAKE2b-256 checksum
How to use checksums
3b7f23c1e509d48d778356ad8a2f27fba045bef4cb7fad7531039e016227569a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Release files / msglc-260819-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL msglc-260819-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 330.9 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
02839c9f0fa20254eb0789bba88a843ba6f9ff8696371bd72117f31ea5fa240b
BLAKE2b-256 checksum
How to use checksums
3b71f479640053fe437dbde731ff39592251c681e37d7f699fb9d790efb69f75
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Release files / msglc-260819-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL msglc-260819-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 325.8 kB
Tags CPython 3.12 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
9db3a1d146765db5d3d79c35c29b82735117d027f6cf67942c42321a77b797d8
BLAKE2b-256 checksum
How to use checksums
59e78810a65e429f169b8f2e9fb67b72ca254f2095d243c56e2ef3ff3869679a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Release files / msglc-260819-cp312-cp312-macosx_11_0_arm64.whl

Download URL msglc-260819-cp312-cp312-macosx_11_0_arm64.whl
Size 300.7 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
cc03273ac4461076607ed6a7b7b2d2eb341585a965e2dbbe8275dd4f405d3b22
BLAKE2b-256 checksum
How to use checksums
f31168a2f99ee7ad92b15e2590a06cd57da63ce5be222b035d7547d7e16414fe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Release files / msglc-260819-cp312-cp312-macosx_10_12_x86_64.whl

Download URL msglc-260819-cp312-cp312-macosx_10_12_x86_64.whl
Size 305.9 kB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
fcac67032afda795a887771ed4a45083dd6cb0f6750d4fb573be31da51f9c949
BLAKE2b-256 checksum
How to use checksums
2529e2cc00b2a29fb13613561ab259fb3f958703551b7b3b6949348b50134a76
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Release files / msglc-260819-cp311-cp311-win_amd64.whl

Download URL msglc-260819-cp311-cp311-win_amd64.whl
Size 200.3 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
700ceed024c702340f95a2e2b58c7c4b8565b882aaafb44479898280f3c68b57
BLAKE2b-256 checksum
How to use checksums
ba116c15673de6630e5f703835f85b1f02896b14d695e382340292c7cf277613
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Release files / msglc-260819-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL msglc-260819-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 334.3 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
ba7b8a787ccf14228fb74853e14bf6e3f8bcbac8a231583131fc4f7c412437f5
BLAKE2b-256 checksum
How to use checksums
c46ee683161f89de49182487d2aa09bbe1a0251492f834b7d45b1b6f11814710
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Release files / msglc-260819-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL msglc-260819-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 330.7 kB
Tags CPython 3.11 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
5976244120325669c3763b0317a8f6312f412834e48c1289f5f89be449268904
BLAKE2b-256 checksum
How to use checksums
7166a5e88ca2e77da19f5596954885f02a1cd68b9d0d67a771f714342a2c50dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Release files / msglc-260819-cp311-cp311-macosx_11_0_arm64.whl

Download URL msglc-260819-cp311-cp311-macosx_11_0_arm64.whl
Size 306.2 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
352f149dd8db06eeb932f9de53932fa3088d8f5275fe53e47a6740de6c3ab3e0
BLAKE2b-256 checksum
How to use checksums
b788c04df657fa287bf04915e9eb3473ba5115d31157ea2c6a1178340b7ff5b7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Release files / msglc-260819-cp311-cp311-macosx_10_12_x86_64.whl

Download URL msglc-260819-cp311-cp311-macosx_10_12_x86_64.whl
Size 306.4 kB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
a88c2220900b2a67d9545474ae7f13a0394638aa0aa67c557d02c3b1cfc68418
BLAKE2b-256 checksum
How to use checksums
c5ed48ba9cb45b21abc498f22d1ac9d0db81b30c91ccceebd68db63b726eece6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

260819 This release

30 release files

260412

1 release file

260319

1 release file

260317

1 release file

260315

1 release file

260201

1 release file

260115

1 release file

260103

1 release file

251227

1 release file

251222

1 release file

251009

1 release file

250419

1 release file

250314

1 release file

240630

1 release file

240330

1 release file

240317

1 release file

240316

1 release file

240312

1 release file

240308

1 release file

240307

1 release file

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