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.

One may want to check the benchmark.

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 = True
    simple_repr: bool = True
    copy_chunk_size: int = 2 ** 24  # 16MB

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 260423

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 260423
File Size Uploaded
msglc-260423.tar.gz 45.1 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for msglc 260423
File
msglc-260423-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-260423-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-260423-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 Details
msglc-260423-cp314-cp314-win_arm64.whl CPython 3.14 CPython 3.14 Windows ARM64 Details
msglc-260423-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
msglc-260423-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-260423-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ ARM64 Details
msglc-260423-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
msglc-260423-cp314-cp314-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.12+ x86-64 Details
msglc-260423-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.13 CPython 3.13 free-threading Linux glibc 2.17+ ARM64 Details
msglc-260423-cp313-cp313-win_arm64.whl CPython 3.13 CPython 3.13 Windows ARM64 Details
msglc-260423-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
msglc-260423-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-260423-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ ARM64 Details
msglc-260423-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
msglc-260423-cp313-cp313-macosx_10_12_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.12+ x86-64 Details
msglc-260423-cp312-cp312-win_arm64.whl CPython 3.12 CPython 3.12 Windows ARM64 Details
msglc-260423-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
msglc-260423-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-260423-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64 Details
msglc-260423-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
msglc-260423-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details
msglc-260423-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
msglc-260423-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-260423-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64 Details
msglc-260423-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
msglc-260423-cp311-cp311-macosx_10_12_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64 Details
msglc-260423-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
msglc-260423-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
msglc-260423-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ ARM64 Details

Total release size: 8.5 MB

Release files / msglc-260423.tar.gz

Download URL msglc-260423.tar.gz
Size 45.1 kB
Tags Source
SHA-256 checksum
How to use checksums
e173f561e3aaa0a868d0c349bbc7f25dc79a5e58a150e44b6ed9c35482b95f85
BLAKE2b-256 checksum
How to use checksums
bdad1befd907ca6e879be857f3433ce0e64bf4e56631b5e1b6e48cb904b1a346
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 23, 2026.

Transparency log

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

Download URL msglc-260423-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 330.0 kB
Tags Linux glibc 2.17+ x86-64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
c644539f18d9642dacaf89de10f8e96d693d6aa012cdbdcfb131edd834d03c0e
BLAKE2b-256 checksum
How to use checksums
dfd820eb97bf2a1f02441e356efe5731cbd09bc687c2fb9343ecf2546cdaff81
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 23, 2026.

Transparency log

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

Download URL msglc-260423-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 325.5 kB
Tags Linux glibc 2.17+ ARM64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
250cd517ca92796c41642bc2abae61271fd27eaf41142ccec87555826f0371d8
BLAKE2b-256 checksum
How to use checksums
6d2fabb23fc22287f8002051e563ac086aa0717f6fb2b361e2f381860fbb6a5e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 23, 2026.

Transparency log

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

Download URL msglc-260423-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 320.8 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
a61c24491394eeb327661d615633a7c8e071f77bfc3ccb61c4970b016f06c1e4
BLAKE2b-256 checksum
How to use checksums
995d301dda848aa907857b4fd82e4a90880d3203996156603faaea06afb36c4b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 23, 2026.

Transparency log

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

Download URL msglc-260423-cp314-cp314-win_arm64.whl
Size 187.5 kB
Tags CPython 3.14 Windows ARM64
SHA-256 checksum
How to use checksums
a9a2bdb90c7119b7b6b03967d22d3449a3d128b107542996434a8a9b351fcfd7
BLAKE2b-256 checksum
How to use checksums
a020dc99557b3653f5f817078be93df25a685b8716df6597958faba201b966af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 23, 2026.

Transparency log

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

Download URL msglc-260423-cp314-cp314-win_amd64.whl
Size 191.8 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
ae3dd2be5f98d7095df82b8aecd9f21da42fb2eedbd750dbf68de04a1e2d1e69
BLAKE2b-256 checksum
How to use checksums
0a8a4a9655f0cbda90de220e3fdc1d1d4aaa85ec426185924607e341fe67159f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 23, 2026.

Transparency log

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

Download URL msglc-260423-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 324.9 kB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
80d3484e986baf265638a03df378a57542e75ed1b0328da1563c397e759c1db6
BLAKE2b-256 checksum
How to use checksums
040261bbadbcb6116693e1961461532dc0c13d3ae43d9b56b454443a50e1f9a8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 23, 2026.

Transparency log

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

Download URL msglc-260423-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 321.8 kB
Tags CPython 3.14 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
ad2de9ca38ef593fc7724de118cdd975c7e7f0c271308c0055b17350dec93f97
BLAKE2b-256 checksum
How to use checksums
94418fea3b19f5b3f05978d55051cd0065463f8f32e0c30a3778804db7cbd3ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 23, 2026.

Transparency log

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

Download URL msglc-260423-cp314-cp314-macosx_11_0_arm64.whl
Size 294.0 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a7cad4b4c00f388bcba0e95be6d340d295b1f33fc260c86981505f33f383ce9b
BLAKE2b-256 checksum
How to use checksums
036799bb97a6e19cf296e18a011caa1121a8b8a4eba842de1ab657adb7098d02
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 23, 2026.

Transparency log

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

Download URL msglc-260423-cp314-cp314-macosx_10_12_x86_64.whl
Size 298.9 kB
Tags CPython 3.14 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
44d996ca4a359ca4debd7a0948624d220f4ba0cf3011aba185c05a4a71057fee
BLAKE2b-256 checksum
How to use checksums
738a984489958e6804f907fc03d4ce11831fa11be48c89c51eec1295f458e466
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 23, 2026.

Transparency log

Release files / msglc-260423-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL msglc-260423-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 320.3 kB
Tags CPython 3.13 CPython 3.13 free-threading Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
67bf8a35ac1a6d3eb082abccecd8a71c3c5bf7065dd6ee94e1970b5e7c953ff7
BLAKE2b-256 checksum
How to use checksums
ec01c420ff308f16399c88e8fa9cfa628739f683df12f3cb2684e83494c12501
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 23, 2026.

Transparency log

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

Download URL msglc-260423-cp313-cp313-win_arm64.whl
Size 187.8 kB
Tags CPython 3.13 Windows ARM64
SHA-256 checksum
How to use checksums
6beabc18183dbc44d8dddcfe04e7f1b68e75ee3e223e6a61237401ce0cbb8f93
BLAKE2b-256 checksum
How to use checksums
4f93a5a40c902ed30a119c26c55699e74e175f654bbc27dc1514c7936c8d164e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 23, 2026.

Transparency log

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

Download URL msglc-260423-cp313-cp313-win_amd64.whl
Size 191.8 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
367869f8d390cda6bb451e068c6b32968d7723588d34141f55c0eb4b47987d6b
BLAKE2b-256 checksum
How to use checksums
df6e1267c56a5691f2fe89ae1e8003e6861f2031bf650de8a17e89174210760c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 23, 2026.

Transparency log

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

Download URL msglc-260423-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 324.3 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
02b4625cc99beec204f19e602207792b34a42d449c3bb2491157e774dc3f2782
BLAKE2b-256 checksum
How to use checksums
b6305cd164f9ad844bb90b9cc67abd0c9f276d8fd6dd32f251d39da7216a68a2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 23, 2026.

Transparency log

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

Download URL msglc-260423-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 322.0 kB
Tags CPython 3.13 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
8141778854a6dc2284875ba374dbb1f5598f9e0827f69dd0ad8fe138e1054b64
BLAKE2b-256 checksum
How to use checksums
a1e728bee8d2a723bb147a1cee094446fa27de1c408ffd960afde6ab65928639
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 23, 2026.

Transparency log

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

Download URL msglc-260423-cp313-cp313-macosx_11_0_arm64.whl
Size 293.8 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d974627f11ef78f43caa8a0fd44d67d78b42ad7c68728593b03499d6d1bbbbd5
BLAKE2b-256 checksum
How to use checksums
dd65a2770b7434ffb194a51b6dca24892554211a935f529ee8bb28c634376f15
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 23, 2026.

Transparency log

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

Download URL msglc-260423-cp313-cp313-macosx_10_12_x86_64.whl
Size 298.6 kB
Tags CPython 3.13 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
5ed1ae8f1280148db3f329d1b626ac0f6dafa42f7aa5265d775d8827b6df8068
BLAKE2b-256 checksum
How to use checksums
84cc9cd20eab17d43574616f9c9e7b0a039b31cd1a66927ef409db545966ae58
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 23, 2026.

Transparency log

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

Download URL msglc-260423-cp312-cp312-win_arm64.whl
Size 188.2 kB
Tags CPython 3.12 Windows ARM64
SHA-256 checksum
How to use checksums
77c19184c9d60713d0f40132ac1076164088be80b78027301ab5eadd83249c9a
BLAKE2b-256 checksum
How to use checksums
c6465435f0a04b81f5c87d1654ebbfaa66c1af62d5323c5c6cc30ec5058e8a7a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 23, 2026.

Transparency log

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

Download URL msglc-260423-cp312-cp312-win_amd64.whl
Size 192.1 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
799f328c6b998660f88a39f4320dd70fb401633824a5dd2078154192bd84200b
BLAKE2b-256 checksum
How to use checksums
546dc880e011a534ac36bb2a705f4ca45fde7e8ffe1c7e7b92cab7c5deda3cd1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 23, 2026.

Transparency log

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

Download URL msglc-260423-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 324.5 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
66235599330b8e1bc0a0513cd0c5c3f26c62a5150d65691a439fc7dd9be62a2c
BLAKE2b-256 checksum
How to use checksums
4896ba38ad08257d17d91cb2c0b8b5f73c763d31b3dd001698b7d11d89204d4a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 23, 2026.

Transparency log

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

Download URL msglc-260423-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 322.1 kB
Tags CPython 3.12 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
6e4d1ad265263afee14ecaba96e292a9921d395d21a5ab2cf28c72f967511d1e
BLAKE2b-256 checksum
How to use checksums
3d08d4d175b11c262c219dc7b411a9fcad4202347d3fc28b6ae0e3de929f6a07
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 23, 2026.

Transparency log

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

Download URL msglc-260423-cp312-cp312-macosx_11_0_arm64.whl
Size 294.4 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e6fb9d2ebee42251e492c3a21c96fa8a612ced9f447779b40742bc77ce54c13c
BLAKE2b-256 checksum
How to use checksums
d7a121b807703ba0ba1d71e7d0947f75c58e645b2a4e372740f3ede8a0221692
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 23, 2026.

Transparency log

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

Download URL msglc-260423-cp312-cp312-macosx_10_12_x86_64.whl
Size 299.1 kB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
b240138a6d08406fb6147b8d4be218156c7caf9c4364d2c37adeba3d75ce5b19
BLAKE2b-256 checksum
How to use checksums
579fafa8d5c092e545ec92765968d634d152e86b645fdc71c459080173183e90
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 23, 2026.

Transparency log

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

Download URL msglc-260423-cp311-cp311-win_amd64.whl
Size 193.7 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
537c5ba39eee70769683e3894a3eb2cba049d8ee1145ec0c61a81a19f2a2b35f
BLAKE2b-256 checksum
How to use checksums
35e44953ca3b38f83861c2b54b917b484e2131ad7f8e3602f97d8bbea2e397d8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 23, 2026.

Transparency log

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

Download URL msglc-260423-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 327.6 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
229fa4fed2c22f2847891cf6688c5648ff1a865db1601b03177b2978a17f0db9
BLAKE2b-256 checksum
How to use checksums
1cb57b1ee9d362079586220720165877170fc5c1667c1adf897b064c8893f834
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 23, 2026.

Transparency log

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

Download URL msglc-260423-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 324.2 kB
Tags CPython 3.11 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
97bf44fd21e9e6e503d44b36e13791acf4b76e227fcb90bec0fb74b4ea5ec51e
BLAKE2b-256 checksum
How to use checksums
b02bf84d2c7b401e893e6c19e9e7382b8c0bf97f1dd9c09598ec10a14e2b9f95
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 23, 2026.

Transparency log

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

Download URL msglc-260423-cp311-cp311-macosx_11_0_arm64.whl
Size 296.3 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
8cfc3d0cdef28bac7e89464c2bcaf4b4b967fd63e7ac79deca3c682d910c7d19
BLAKE2b-256 checksum
How to use checksums
9c3cfa75bb214db4234a888a9fa79f3965b5836a42b6c1aa9d71e7a7e4452536
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 23, 2026.

Transparency log

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

Download URL msglc-260423-cp311-cp311-macosx_10_12_x86_64.whl
Size 299.4 kB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
3eb7c18f082f2565773d0fb76afe20c6003c4dfac2b6aef63faf2b998ad30b15
BLAKE2b-256 checksum
How to use checksums
0bc74673faa1df2f6b18a575ce69c32d31e7f25cefc02b02dfe12e6823076ace
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 23, 2026.

Transparency log

Release files / msglc-260423-cp310-cp310-win_amd64.whl

Download URL msglc-260423-cp310-cp310-win_amd64.whl
Size 193.6 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
93bd8170e2bb3f4803013da8e7a00877c9c216e9c07bf43ebf454800b0252967
BLAKE2b-256 checksum
How to use checksums
132d350ebe4d77cbce87c43d452c0b5da6f7778ce18e55cf37c1e5d81bb575c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 23, 2026.

Transparency log

Release files / msglc-260423-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL msglc-260423-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 327.7 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
d7e463588267d44e21161ced5ac790c2b7eb472388ee8f6e17ae43c165dd07c6
BLAKE2b-256 checksum
How to use checksums
77b0dc57fc54b3b41759b5e0ac047fdef1380467345da2602cc97c61d34205a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 23, 2026.

Transparency log

Release files / msglc-260423-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL msglc-260423-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 323.3 kB
Tags CPython 3.10 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
483bf317677b25a2eb715c23f127e66db7e00026647c163057d326ea2d5deb5a
BLAKE2b-256 checksum
How to use checksums
10d01f6cc7303694f7f4f4a2c9c67c2ff855b56364e0e16ee088647859ede667
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 23, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

260423 This release

31 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