Package Search Help

You can use boolean logic (e.g. AND/OR/NOT) for complex search queries. For more help and examples, see the search documentation.

Search by package name:
my-package (implicit)
name:my-package (explicit)

Search by package filename:
my-package.ext (implicit)
filename:my-package.ext (explicit)

Search by package tag:
latest (implicit)
tag:latest (explicit)

Search by package version:
1.0.0 (implicit)
version:1.0.0 (explicit)
prerelease:true (prereleases)
prerelease:false (no prereleases)

Search by package architecture:
architecture:x86_64 

Search by package distribution:
distribution:el 

Search by package license:
license:MIT 

Search by package format:
format:deb 

Search by package status:
status:in_progress 

Search by package file checksum:
checksum:5afba 

Search by package security status:
severity:critical 

Search by package vulnerabilities:
vulnerabilities:>1 
vulnerabilities:<1000 

Search by # of package downloads:
downloads:>8 
downloads:<100 

Search by package type:
type:binary 
type:source 

Search by package size (bytes):
size:>50000 
size:<10000 

Search by dependency name/version:
dependency:log4j 
dependency:log4j=1.0.0 
dependency:log4j>1.0.0 

Search by uploaded date:
uploaded:>"1 day ago" 
uploaded:<"August 14, 2022 EST" 

Search by entitlement token (identifier):
entitlement:3lKPVJPosCsY 

Search by policy violation:
policy_violated:true
deny_policy_violated:true
license_policy_violated:true
vulnerability_policy_violated:true

Search by repository:
repository:repo-name

Search queries for all Debian-specific (and related) package types

Search by component:
deb_component:unstable

Search queries for all Maven-specific (and related) package types

Search by group ID:
maven_group_id:org.apache

Search queries for all Docker-specific (and related) package types

Search by image digest:
docker_image_digest:sha256:7c5..6d4
(full hashref only)

Search by layer digest:
docker_layer_digest:sha256:4c4..ae4
(full hashref only)

Field type modifiers (depending on the type, you can influence behaviour)

For all queries, you can use:
~foo for negation

For string queries, you can use:
^foo to anchor to start of term
foo$ to anchor to end of term
foo*bar for fuzzy matching

For number/date or version queries, you can use:
>foo for values greater than
>=foo for values greater / equal
<foo for values less than
<=foo for values less / equal

Need a secure and centralised artifact repository to deliver Alpine, Cargo, CocoaPods, Composer, Conan, Conda, CRAN, Dart, Debian, Docker, Go, Helm, Hex, LuaRocks, Maven, npm, NuGet, P2, Python, RedHat, Ruby, Swift, Terraform, Vagrant, Raw & More packages?

Cloudsmith is the new standard in Package / Artifact Management and Software Distribution.

With support for all major package formats, you can trust us to manage your software supply chain.

Start My Free Trial
 Public borgmatic-collective borgmatic-co… (Borgmatic Collective) / borgmatic
Borgmatic: A certifiably-awesome public package repository curated by Borgmatic Collective, hosted by Cloudsmith.

Python logo msgpack  1.0.6

One-liner (summary)

MessagePack serializer

Description

# MessagePack for Python

[![Build Status](https://github.com/msgpack/msgpack-python/actions/workflows/wheel.yml/badge.svg)](https://github.com/msgpack/msgpack-python/actions/workflows/wheel.yml) [![Documentation Status](https://readthedocs.org/projects/msgpack-python/badge/?version=latest)](https://msgpack-python.readthedocs.io/en/latest/?badge=latest)

## What's this

[MessagePack](https://msgpack.org/) is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON. But it's faster and smaller. This package provides CPython bindings for reading and writing MessagePack data.

## Very important notes for existing users

### PyPI package name

Package name on PyPI was changed from msgpack-python to msgpack from 0.5.

When upgrading from msgpack-0.4 or earlier, do pip uninstall msgpack-python before pip install -U msgpack.

### Compatibility with the old format

You can use use_bin_type=False option to pack bytes object into raw type in the old msgpack spec, instead of bin type in new msgpack spec.

You can unpack old msgpack format using raw=True option. It unpacks str (raw) type in msgpack into Python bytes.

See note below for detail.

### Major breaking changes in msgpack 1.0

  • Python 2
    • The extension module does not support Python 2 anymore. The pure Python implementation (msgpack.fallback) is used for Python 2.
  • Packer
    • use_bin_type=True by default. bytes are encoded in bin type in msgpack. If you are still using Python 2, you must use unicode for all string types. You can use use_bin_type=False to encode into old msgpack format.
    • encoding option is removed. UTF-8 is used always.
  • Unpacker
    • raw=False by default. It assumes str types are valid UTF-8 string and decode them to Python str (unicode) object.
    • encoding option is removed. You can use raw=True to support old format.
    • Default value of max_buffer_size is changed from 0 to 100 MiB.
    • Default value of strict_map_key is changed to True to avoid hashdos. You need to pass strict_map_key=False if you have data which contain map keys which type is not bytes or str.

## Install

` $ pip install msgpack `

### Pure Python implementation

The extension module in msgpack (msgpack._cmsgpack) does not support Python 2 and PyPy.

But msgpack provides a pure Python implementation (msgpack.fallback) for PyPy and Python 2.

### Windows

When you can't use a binary distribution, you need to install Visual Studio or Windows SDK on Windows. Without extension, using pure Python implementation on CPython runs slowly.

## How to use

NOTE: In examples below, I use raw=False and use_bin_type=True for users using msgpack < 1.0. These options are default from msgpack 1.0 so you can omit them.

### One-shot pack & unpack

Use packb for packing and unpackb for unpacking. msgpack provides dumps and loads as an alias for compatibility with json and pickle.

pack and dump packs to a file-like object. unpack and load unpacks from a file-like object.

`pycon >>> import msgpack >>> msgpack.packb([1, 2, 3], use_bin_type=True) '\x93\x01\x02\x03' >>> msgpack.unpackb(_, raw=False) [1, 2, 3] `

unpack unpacks msgpack's array to Python's list, but can also unpack to tuple:

`pycon >>> msgpack.unpackb(b'\x93\x01\x02\x03', use_list=False, raw=False) (1, 2, 3) `

You should always specify the use_list keyword argument for backward compatibility. See performance issues relating to `use_list option`_ below.

Read the docstring for other options.

### Streaming unpacking

Unpacker is a "streaming unpacker". It unpacks multiple objects from one stream (or from bytes provided through its feed method).

```py import msgpack from io import BytesIO

buf = BytesIO() for i in range(100):

buf.write(msgpack.packb(i, use_bin_type=True))

buf.seek(0)

unpacker = msgpack.Unpacker(buf, raw=False) for unpacked in unpacker:

print(unpacked)

```

### Packing/unpacking of custom data type

It is also possible to pack/unpack custom data types. Here is an example for datetime.datetime.

```py import datetime import msgpack

useful_dict = {
"id": 1, "created": datetime.datetime.now(),

}

def decode_datetime(obj):
if '__datetime__' in obj:
obj = datetime.datetime.strptime(obj["as_str"], "%Y%m%dT%H:%M:%S.%f")

return obj

def encode_datetime(obj):
if isinstance(obj, datetime.datetime):
return {'__datetime__': True, 'as_str': obj.strftime("%Y%m%dT%H:%M:%S.%f")}

return obj

packed_dict = msgpack.packb(useful_dict, default=encode_datetime, use_bin_type=True) this_dict_again = msgpack.unpackb(packed_dict, object_hook=decode_datetime, raw=False) ```

Unpacker's object_hook callback receives a dict; the object_pairs_hook callback may instead be used to receive a list of key-value pairs.

### Extended types

It is also possible to pack/unpack custom data types using the ext type.

`pycon >>> import msgpack >>> import array >>> def default(obj): ...     if isinstance(obj, array.array) and obj.typecode == 'd': ...         return msgpack.ExtType(42, obj.tostring()) ...     raise TypeError("Unknown type: %r" % (obj,)) ... >>> def ext_hook(code, data): ...     if code == 42: ...         a = array.array('d') ...         a.fromstring(data) ...         return a ...     return ExtType(code, data) ... >>> data = array.array('d', [1.2, 3.4]) >>> packed = msgpack.packb(data, default=default, use_bin_type=True) >>> unpacked = msgpack.unpackb(packed, ext_hook=ext_hook, raw=False) >>> data == unpacked True `

### Advanced unpacking control

As an alternative to iteration, Unpacker objects provide unpack, skip, read_array_header and read_map_header methods. The former two read an entire message from the stream, respectively de-serialising and returning the result, or ignoring it. The latter two methods return the number of elements in the upcoming container, so that each element in an array, or key-value pair in a map, can be unpacked or skipped individually.

## Notes

### string and binary type

Early versions of msgpack didn't distinguish string and binary types. The type for representing both string and binary types was named raw.

You can pack into and unpack from this old spec using use_bin_type=False and raw=True options.

`pycon >>> import msgpack >>> msgpack.unpackb(msgpack.packb([b'spam', 'eggs'], use_bin_type=False), raw=True) [b'spam', b'eggs'] >>> msgpack.unpackb(msgpack.packb([b'spam', 'eggs'], use_bin_type=True), raw=False) [b'spam', 'eggs'] `

### ext type

To use the ext type, pass msgpack.ExtType object to packer.

`pycon >>> import msgpack >>> packed = msgpack.packb(msgpack.ExtType(42, b'xyzzy')) >>> msgpack.unpackb(packed) ExtType(code=42, data='xyzzy') `

You can use it with default and ext_hook. See below.

### Security

To unpacking data received from unreliable source, msgpack provides two security options.

max_buffer_size (default: 100*1024*1024) limits the internal buffer size. It is used to limit the preallocated list size too.

strict_map_key (default: True) limits the type of map keys to bytes and str. While msgpack spec doesn't limit the types of the map keys, there is a risk of the hashdos. If you need to support other types for map keys, use strict_map_key=False.

### Performance tips

CPython's GC starts when growing allocated object. This means unpacking may cause useless GC. You can use gc.disable() when unpacking large message.

List is the default sequence type of Python. But tuple is lighter than list. You can use use_list=False while unpacking when performance is important.

Size

544.4 KB

Downloads

4

Tags

bdist/wheel whl musllinux_1_1_x86_64 cp311 cp311

Status  Completed
Checksum (MD5) cb535248b4c0dcbc2633b003a9cc3554
Checksum (SHA-1) 65f8134cc0059366aa3eaa58378362d25aee65cf
Checksum (SHA-256) b6f563996abdd520dbb847957b6b454952fe7d613fb3842f6ff53e7177b52bbe
Checksum (SHA-512) 2c5d5d513f176bbda0db4bd5ba500a788a511a3acb2a2b1b7178f3442334038bb3…
GPG Signature
GPG Fingerprint b6417dd9ff0242f6292e6ec5dd727991e9a4345b
Storage Region  Dublin, Ireland
Type  Binary (contains binaries and binary artifacts)
Uploaded At 9 months, 3 weeks ago
Uploaded By alex-lane
Slug Id msgpack-106-cp311-cp311-musllinux_1_1_x86_64wh-taJ
Unique Id 6wh3gSDPiNBT
Version (Raw) 1.0.6
Version (Parsed)
  • Major: 1
  • Minor: 0
  • Patch: 6
  • Type: SemVer (Strict)
  extended metadata
Abi cp311
Author Inada Naoki <songofacandy@gmail.com>
Classifiers Development Status :: 5 - Production/Stable | Intended Audience :: Developers | License :: OSI Approved :: Apache Software License | Operating System :: OS Independent | Programming Language :: Python | Programming Language :: Python :: 3 | Programming Language :: Python :: 3.10 | Programming Language :: Python :: 3.11 | Programming Language :: Python :: 3.12 | Programming Language :: Python :: 3.8 | Programming Language :: Python :: 3.9 | Programming Language :: Python :: Implementation :: CPython | Programming Language :: Python :: Implementation :: PyPy
Keywords msgpack,messagepack,serializer,serialization,binary
Metadata Version 2.1
Platforms musllinux_1_1_x86_64
Project Urls Changelog, https://github.com/msgpack/msgpack-python/blob/main/ChangeLog.rst | Documentation, https://msgpack-python.readthedocs.io/ | Homepage, https://msgpack.org/ | Repository, https://github.com/msgpack/msgpack-python/ | Tracker, https://github.com/msgpack/msgpack-python/issues
Py Filetype bdist_wheel
Py Version cp311
Requires Python >=3.8
pkg msgpack-1.0.6-cp311-cp311-musll… 4
544.4 KB
md5 sha1 sha256 sha512
Package Contents (msgpack-1.0.6-cp311-cp311-musllinux_1_1_x86_64.whl)
Loading...

This package has 25 files/directories.

Security Scanning:
You can't see this because your subscription doesn't include this feature, sorry!

With Security Scanning, Cloudsmith will scan your artifacts for vulnerabilities when they're uploaded. These are then presented to you via the UI and the API, so that you can build rules into your CI/CD pipelines to decide how to handle low, medium, high and critical software vulnerabilities.

If you'd like to trial or ask about the Security Scanning feature, just ask us. We'll be happy to help!

Last scanned

2 days, 15 hours ago

Scan result

Vulnerable

Vulnerability count

4

Max. severity

Critical
Target:
HIGH

CVE-9083-95299: library: vulnerability title



Package Name: package_name
Installed Version: 1.6.88
Fixed Version: 2.7.90

References: colon.net www.austin.com krause.net
HIGH

CVE-3328-36373: library: vulnerability title



Package Name: package_name
Installed Version: 1.5.72
Fixed Version: 2.8.74

References: kim.com www.cole.net www.white.info
MEDIUM

CVE-6194-92638: library: vulnerability title



Package Name: package_name
Installed Version: 1.5.70
Fixed Version: 2.10.88

References: smith-jones.com manning.info morales-barrett.com
MEDIUM

CVE-4706-94602: library: vulnerability title



Package Name: package_name
Installed Version: 1.10.7
Fixed Version: 2.7.97

References: dunn.info www.davis.com www.webb.com

You can embed a badge in another website that shows this or the latest version of this package.

To embed the badge for this specific package version, use the following:

[![This version of 'msgpack' @ Cloudsmith](https://api-prd.cloudsmith.io/v1/badges/version/borgmatic-collective/borgmatic/python/msgpack/1.0.6/a=musllinux_1_1_x86_64;xa=cp311;xf=bdist_wheel;xn=msgpack;xv=cp311/?render=true)](https://cloudsmith.io/~borgmatic-collective/repos/borgmatic/packages/detail/python/msgpack/1.0.6/a=musllinux_1_1_x86_64;xa=cp311;xf=bdist_wheel;xn=msgpack;xv=cp311/)
|This version of 'msgpack' @ Cloudsmith|
.. |This version of 'msgpack' @ Cloudsmith| image:: https://api-prd.cloudsmith.io/v1/badges/version/borgmatic-collective/borgmatic/python/msgpack/1.0.6/a=musllinux_1_1_x86_64;xa=cp311;xf=bdist_wheel;xn=msgpack;xv=cp311/?render=true
   :target: https://cloudsmith.io/~borgmatic-collective/repos/borgmatic/packages/detail/python/msgpack/1.0.6/a=musllinux_1_1_x86_64;xa=cp311;xf=bdist_wheel;xn=msgpack;xv=cp311/
image::https://api-prd.cloudsmith.io/v1/badges/version/borgmatic-collective/borgmatic/python/msgpack/1.0.6/a=musllinux_1_1_x86_64;xa=cp311;xf=bdist_wheel;xn=msgpack;xv=cp311/?render=true[link="https://cloudsmith.io/~borgmatic-collective/repos/borgmatic/packages/detail/python/msgpack/1.0.6/a=musllinux_1_1_x86_64;xa=cp311;xf=bdist_wheel;xn=msgpack;xv=cp311/",title="This version of 'msgpack' @ Cloudsmith"]
<a href="https://cloudsmith.io/~borgmatic-collective/repos/borgmatic/packages/detail/python/msgpack/1.0.6/a=musllinux_1_1_x86_64;xa=cp311;xf=bdist_wheel;xn=msgpack;xv=cp311/"><img src="https://api-prd.cloudsmith.io/v1/badges/version/borgmatic-collective/borgmatic/python/msgpack/1.0.6/a=musllinux_1_1_x86_64;xa=cp311;xf=bdist_wheel;xn=msgpack;xv=cp311/?render=true" alt="This version of 'msgpack' @ Cloudsmith" /></a>

rendered as: This version of 'msgpack' @ Cloudsmith

To embed the badge for the latest package version, use the following:

[![Latest version of 'msgpack' @ Cloudsmith](https://api-prd.cloudsmith.io/v1/badges/version/borgmatic-collective/borgmatic/python/msgpack/latest/a=musllinux_1_1_x86_64;xa=cp311;xf=bdist_wheel;xn=msgpack;xv=cp311/?render=true&show_latest=true)](https://cloudsmith.io/~borgmatic-collective/repos/borgmatic/packages/detail/python/msgpack/latest/a=musllinux_1_1_x86_64;xa=cp311;xf=bdist_wheel;xn=msgpack;xv=cp311/)
|Latest version of 'msgpack' @ Cloudsmith|
.. |Latest version of 'msgpack' @ Cloudsmith| image:: https://api-prd.cloudsmith.io/v1/badges/version/borgmatic-collective/borgmatic/python/msgpack/latest/a=musllinux_1_1_x86_64;xa=cp311;xf=bdist_wheel;xn=msgpack;xv=cp311/?render=true&show_latest=true
   :target: https://cloudsmith.io/~borgmatic-collective/repos/borgmatic/packages/detail/python/msgpack/latest/a=musllinux_1_1_x86_64;xa=cp311;xf=bdist_wheel;xn=msgpack;xv=cp311/
image::https://api-prd.cloudsmith.io/v1/badges/version/borgmatic-collective/borgmatic/python/msgpack/latest/a=musllinux_1_1_x86_64;xa=cp311;xf=bdist_wheel;xn=msgpack;xv=cp311/?render=true&show_latest=true[link="https://cloudsmith.io/~borgmatic-collective/repos/borgmatic/packages/detail/python/msgpack/latest/a=musllinux_1_1_x86_64;xa=cp311;xf=bdist_wheel;xn=msgpack;xv=cp311/",title="Latest version of 'msgpack' @ Cloudsmith"]
<a href="https://cloudsmith.io/~borgmatic-collective/repos/borgmatic/packages/detail/python/msgpack/latest/a=musllinux_1_1_x86_64;xa=cp311;xf=bdist_wheel;xn=msgpack;xv=cp311/"><img src="https://api-prd.cloudsmith.io/v1/badges/version/borgmatic-collective/borgmatic/python/msgpack/latest/a=musllinux_1_1_x86_64;xa=cp311;xf=bdist_wheel;xn=msgpack;xv=cp311/?render=true&show_latest=true" alt="Latest version of 'msgpack' @ Cloudsmith" /></a>

rendered as: Latest version of 'msgpack' @ Cloudsmith

These instructions assume you have setup the repository first (or read it).

To install/use msgpack @ version 1.0.6 ...

pip install 'msgpack==1.0.6'

You can also install the latest version of this package:

pip install --upgrade 'msgpack'

If necessary, you can specify the repository directly:

pip install \
  --index-url=https://dl.cloudsmith.io/public/borgmatic-collective/borgmatic/python/simple/ \
  msgpack==1.0.6

If you've got a project requirements.txt file, you can specify this as a dependency:

--index-url=https://dl.cloudsmith.io/public/borgmatic-collective/borgmatic/python/simple/
msgpack==1.0.6

In addition, you can use this repository as an extra index url. However, please read our documentation on this parameter before using it. For example in a requirements.txt file:

--extra-index-url=https://dl.cloudsmith.io/public/borgmatic-collective/borgmatic/python/simple/
msgpack==1.0.6
Warning: We highly recommend using pip (or similar) rather than installing directly.
Top