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 260818

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

Built distributions (wheels)

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

Total release size: 8.4 MB

Release files / msglc-260818.tar.gz

Download URL msglc-260818.tar.gz
Size 46.5 kB
Tags Source
SHA-256 checksum
How to use checksums
f0f0572291f2440f6aba6fc3c04660aa68709b3d4ba39d17b420668ee1b47e3c
BLAKE2b-256 checksum
How to use checksums
6e880b982c28aeef22516ba3d08d92c5e772a5ed04c63c7812b2ea9a4ecfab97
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 18, 2026.

Transparency log

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

Download URL msglc-260818-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 334.3 kB
Tags Linux glibc 2.17+ x86-64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
f288c921bbf0593efade43b5c5abd1f194d1bc76ee24a9e1face26d804066d62
BLAKE2b-256 checksum
How to use checksums
40e1262cef191f66ae8d803faee2ad76b1971cf5c922f6674ba123ed11fa888b
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 18, 2026.

Transparency log

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

Download URL msglc-260818-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 331.1 kB
Tags Linux glibc 2.17+ ARM64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
09b66379d4a1b0dbbc2a543ddf66f7e7524415b2e4c204ef2e15feaac8ad0523
BLAKE2b-256 checksum
How to use checksums
8687ec44ce76e6e2597a37f3f4f949c1e01b02b26698c8e8d54de3bfd75934b7
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 18, 2026.

Transparency log

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

Download URL msglc-260818-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 330.3 kB
Tags CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
0460140f8518b766eb15418e7b052dca518a710c75f4a6760d9115ea8a467327
BLAKE2b-256 checksum
How to use checksums
470bd6e193db9c6c83e3ab32c94419f101167fa82609a93d978214b06d7f743f
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 18, 2026.

Transparency log

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

Download URL msglc-260818-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 329.3 kB
Tags CPython 3.15 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
3b783041a0d71adfe9fe6c99bd249e14f2cb8a82f7236c937cc3d383f8a6a72c
BLAKE2b-256 checksum
How to use checksums
58aa0f1af6dbf515204d50219f9ab4e16bcdcaab176b2cfab1b1f5774aef2f45
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 18, 2026.

Transparency log

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

Download URL msglc-260818-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 330.4 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
d8a61d9c81dc680e23add6e106f52620ffbc58a373f061a36400bb4f418519b8
BLAKE2b-256 checksum
How to use checksums
217993ade5a782c3152d032bdb748d0410cf20b9cc60c7ef7d9dc42a182cbc5f
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 18, 2026.

Transparency log

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

Download URL msglc-260818-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 324.6 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
1c763b559a4a8d75dfd5a6d47c77d50e50782015b06f60ff151724ea22dff87b
BLAKE2b-256 checksum
How to use checksums
91bd508fa66330f18d685c6664efde36ce222eee84a23dbb1b975d061b1cfe28
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 18, 2026.

Transparency log

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

Download URL msglc-260818-cp314-cp314-win_arm64.whl
Size 193.8 kB
Tags CPython 3.14 Windows ARM64
SHA-256 checksum
How to use checksums
0fac56a143ce36948713d2098a15093c4d18df89cf692901ca88f958defc53e7
BLAKE2b-256 checksum
How to use checksums
eb20473b8ca0aa5ce534d6ef31ba38c133212409f55ba3701d2c8b6184e17813
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 18, 2026.

Transparency log

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

Download URL msglc-260818-cp314-cp314-win_amd64.whl
Size 196.2 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
d91b8f6160c72902a402a404c87f58d4d648c876bed21a173f2439197ca3efdd
BLAKE2b-256 checksum
How to use checksums
4f22f9369b141f8cc4b99f845bd234a51d4884e6e71c2643b5d9a7d4abed45d3
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 18, 2026.

Transparency log

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

Download URL msglc-260818-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 329.2 kB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
4f19420c05f09aafa93fceb56dd573b1316919e2f92a60401bc9562796f839ae
BLAKE2b-256 checksum
How to use checksums
94cdae8053b6054817906eea3f2dd82e99e391b53c49f3fd0d933813efdd38df
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 18, 2026.

Transparency log

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

Download URL msglc-260818-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 324.8 kB
Tags CPython 3.14 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
82b889ae6b79b2692f66dc3cb0e0d284efacc7f0c7fff8eb130134feebd658bb
BLAKE2b-256 checksum
How to use checksums
f013202195a545870cdb5a88de329da0800e3e9788c7c4a1cff3198a8b2a9c88
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 18, 2026.

Transparency log

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

Download URL msglc-260818-cp314-cp314-macosx_11_0_arm64.whl
Size 298.8 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
9a05d2957a5461846fca165a3933c3013639e2036c838892d4d1a27e73620e4d
BLAKE2b-256 checksum
How to use checksums
7de50fe37f25f79d56819a553b172ce7fb7e22f1754f0b1ecf4e471d5816738d
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 18, 2026.

Transparency log

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

Download URL msglc-260818-cp314-cp314-macosx_10_12_x86_64.whl
Size 304.3 kB
Tags CPython 3.14 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
b89c7f661b0e887c671fc836e470162c665dd697d824fde6f5bf7e125d923954
BLAKE2b-256 checksum
How to use checksums
e827e7bd2f07bcdd5a59079486fbb6b074eba0587690f3e66a77bceb9fb10106
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 18, 2026.

Transparency log

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

Download URL msglc-260818-cp313-cp313-win_arm64.whl
Size 193.3 kB
Tags CPython 3.13 Windows ARM64
SHA-256 checksum
How to use checksums
12d032d87ec624d2b7212f13466f88873327fd839983ffe18150c925274be973
BLAKE2b-256 checksum
How to use checksums
1237ae41a2c8d0a90f9385175b6fe44c0dd85454990c67bb46e95bb30e2189f1
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 18, 2026.

Transparency log

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

Download URL msglc-260818-cp313-cp313-win_amd64.whl
Size 195.6 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
ef6aa2387aae82a2e2a66bd07467de60ab1cec68689a185e4ca0f3aeb8b15cff
BLAKE2b-256 checksum
How to use checksums
c74c6c0f72d09ed47d2e7eb43fef9933380d27ff560c1ca26ec85dd5935f774f
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 18, 2026.

Transparency log

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

Download URL msglc-260818-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 328.4 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
9072af40534620b6386c3e0fed70b36bffd2366683af850fbc1151d67dce7830
BLAKE2b-256 checksum
How to use checksums
6fabef48e697a2b8024c32c8639b1dfafda8dc301380423e9b27daf46f81698d
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 18, 2026.

Transparency log

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

Download URL msglc-260818-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 324.2 kB
Tags CPython 3.13 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
963ea30bb479f4b7f02e591be4e841d8f73f96f2b808c3198deac88654a70c0e
BLAKE2b-256 checksum
How to use checksums
d9c4d9b606b89cfd71011d38bb9adb28b2a4c79dd0b7b5020e3146b68702a248
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 18, 2026.

Transparency log

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

Download URL msglc-260818-cp313-cp313-macosx_11_0_arm64.whl
Size 298.0 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
f6015961bc613c9da58a1f083f2fc41f13d68f6a953ddc932753ecd0e8619c20
BLAKE2b-256 checksum
How to use checksums
fb9bb61ff4903f77121e86f2bd9438ca92a745359efde06faa45843a0c34192a
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 18, 2026.

Transparency log

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

Download URL msglc-260818-cp313-cp313-macosx_10_12_x86_64.whl
Size 303.6 kB
Tags CPython 3.13 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
b9b1bdb3eb182fc1eb3040de7ace73a526f1060d3cf571942e292952e0970793
BLAKE2b-256 checksum
How to use checksums
bdbb8441568c603a0d2fa5c8b8190b577f7d5fb31ec5d1df922b44058ba1e882
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 18, 2026.

Transparency log

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

Download URL msglc-260818-cp312-cp312-win_arm64.whl
Size 193.7 kB
Tags CPython 3.12 Windows ARM64
SHA-256 checksum
How to use checksums
f8fd8b80c62db738e9a307239364cb62c59430ee2dbefa613b677765c06d4b9f
BLAKE2b-256 checksum
How to use checksums
6624931d85cf24c5f234174f09913d51261ff39eaa284a069c8744688b3b66d3
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 18, 2026.

Transparency log

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

Download URL msglc-260818-cp312-cp312-win_amd64.whl
Size 196.1 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
e9850a4874762f84fc04be06573a9678d68babeebbcecb3c6bbb2402e6c073ca
BLAKE2b-256 checksum
How to use checksums
fb251102a0d43046bf9fa0b8335446dac7196a3ba70cd70a5222cfdef286220d
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 18, 2026.

Transparency log

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

Download URL msglc-260818-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 328.9 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
e51f5be126af71eca1b9e68cdf50ffca5416c9e2f9f168fec4d4e9848c05fb7a
BLAKE2b-256 checksum
How to use checksums
6fbea307323db39f15fd353ea8f104fe416428103981a2d87a9e9fa40b56a344
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 18, 2026.

Transparency log

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

Download URL msglc-260818-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 324.4 kB
Tags CPython 3.12 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
dd3438c1ad7c988a5e8cf37e1bf1266eb6ad3bd8f80552889cf060175b26508e
BLAKE2b-256 checksum
How to use checksums
9dd5ca429ce627ac31e01179ad953431da9c570c3cffc8ca83c9394de3c0638a
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 18, 2026.

Transparency log

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

Download URL msglc-260818-cp312-cp312-macosx_11_0_arm64.whl
Size 298.6 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e56c9eae7c53b19f0016432ce6f20744d5a1b2fbcdcce2101c4e32f40956ae72
BLAKE2b-256 checksum
How to use checksums
7601a86cc122a87518dba0aedbca4527a456bf8909ff0de600bd57a2df85b1f4
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 18, 2026.

Transparency log

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

Download URL msglc-260818-cp312-cp312-macosx_10_12_x86_64.whl
Size 304.2 kB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
04a5881285f271428df937caf88e71b98aa3a8bd2284d7963cf0937a45c66839
BLAKE2b-256 checksum
How to use checksums
84f8eb30b468a817e2ee0da60e26c98e95ad7d2fac2a4bfc4505463481137cd9
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 18, 2026.

Transparency log

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

Download URL msglc-260818-cp311-cp311-win_amd64.whl
Size 198.2 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
12c1f1ffaa93b26e5d98513c99333ab9478d3334221ebf4f905378f490efca3c
BLAKE2b-256 checksum
How to use checksums
e98be663ef24d8ce52ab4732f4fcf806367a451f08cc314868f330e61e6e2535
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 18, 2026.

Transparency log

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

Download URL msglc-260818-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 332.8 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
918471d37d9a2c1323f325bce07951f0b39f67af8ef1a74c8f42b25b16be3725
BLAKE2b-256 checksum
How to use checksums
c752c71fe276a7fe258db6dde0967b6f9834e0e833ab7a85c3fcc0a6b50f0646
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 18, 2026.

Transparency log

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

Download URL msglc-260818-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 328.9 kB
Tags CPython 3.11 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
bc045afb777a313e8741282bedbd62f5ade64f7256790ea90f0f9199b66ca5ea
BLAKE2b-256 checksum
How to use checksums
e57885f6791f793b38d237f3bb5823995f4e2cc8d685de16a78d723b134850d7
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 18, 2026.

Transparency log

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

Download URL msglc-260818-cp311-cp311-macosx_11_0_arm64.whl
Size 304.7 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
322d266ef2b9d1ae6a8890396d51232cfd2dea9e76bee06a7dd3b213cb2c9fb5
BLAKE2b-256 checksum
How to use checksums
bfb4ef1280a5bdbe0cf9f885020a62eccc31c9fa6ee8182f8854b2b9b45463b0
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 18, 2026.

Transparency log

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

Download URL msglc-260818-cp311-cp311-macosx_10_12_x86_64.whl
Size 305.0 kB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
489298227637622196ebbf05a4aadca7095d76eba83b106fe67b0c9e57f7b5e8
BLAKE2b-256 checksum
How to use checksums
8fd5ab7a6ba589b89628d6563f0fce81fa18e230ea3cb1a0868451d00d4c05b1
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 18, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

260818 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