msgpack
– Pack object in msgpack format
The msgpack format is similar to json, except that the encoded data is binary.
See https://msgpack.org for details. The module implements a subset of the cpython
module msgpack-python.
Not implemented: 64-bit int, uint, float.
For more information about working with msgpack,
see the CPython Library Documentation.
Example 1:
import msgpack
from io import BytesIO
b = BytesIO()
msgpack.pack({'list': [True, False, None, 1, 3.14], 'str': 'blah'}, b)
b.seek(0)
print(msgpack.unpack(b))
Example 2: handling objects:
from msgpack import pack, unpack, ExtType
from io import BytesIO
class MyClass:
def __init__(self, val):
self.value = val
def __str__(self):
return str(self.value)
data = MyClass(b'my_value')
def encoder(obj):
if isinstance(obj, MyClass):
return ExtType(1, obj.value)
return f"no encoder for {obj}"
def decoder(code, data):
if code == 1:
return MyClass(data)
return f"no decoder for type {code}"
buffer = BytesIO()
pack(data, buffer, default=encoder)
buffer.seek(0)
decoded = unpack(buffer, ext_hook=decoder)
print(f"{data} -> {buffer.getvalue()} -> {decoded}")
Available on these boards
- 01Space 0.42 OLED ESP32C3
- 0xCB Helios
- 42. Keebs Frood
- 8086 USB Interposer
- AITHinker ESP32-C3S_Kit
- AITHinker ESP32-C3S_Kit_2M
- ARAMCON Badge 2019
- ARAMCON2 Badge
- ATMegaZero ESP32-S2
- Adafruit CLUE nRF52840 Express
- Adafruit Camera
- Adafruit Circuit Playground Bluefruit
- Adafruit EdgeBadge
- Adafruit Feather Bluefruit Sense
- Adafruit Feather ESP32 V2
- Adafruit Feather ESP32-C6 4MB Flash No PSRAM
- Adafruit Feather ESP32-S2 Reverse TFT
- Adafruit Feather ESP32-S2 TFT
- Adafruit Feather ESP32-S3 Reverse TFT
- Adafruit Feather ESP32-S3 TFT
- Adafruit Feather ESP32S2
- Adafruit Feather ESP32S3 4MB Flash 2MB PSRAM
- Adafruit Feather ESP32S3 No PSRAM
- Adafruit Feather HUZZAH32
- Adafruit Feather M4 CAN
- Adafruit Feather M4 Express
- Adafruit Feather MIMXRT1011
- Adafruit Feather RP2040
- Adafruit Feather RP2040 Adalogger
- Adafruit Feather RP2040 CAN
- Adafruit Feather RP2040 DVI
- Adafruit Feather RP2040 Prop-Maker
- Adafruit Feather RP2040 RFM
- Adafruit Feather RP2040 Scorpio
- Adafruit Feather RP2040 ThinkInk
- Adafruit Feather RP2040 USB Host
- Adafruit Feather RP2350
- Adafruit Feather STM32F405 Express
- Adafruit Feather nRF52840 Express
- Adafruit Floppsy RP2040
- Adafruit FunHouse
- Adafruit Grand Central M4 Express
- Adafruit HUZZAH32 Breakout
- Adafruit Hallowing M4 Express
- Adafruit ItsyBitsy ESP32
- Adafruit ItsyBitsy M4 Express
- Adafruit ItsyBitsy RP2040
- Adafruit ItsyBitsy nRF52840 Express
- Adafruit KB2040
- Adafruit LED Glasses Driver nRF52840
- Adafruit Macropad RP2040
- Adafruit MagTag
- Adafruit Matrix Portal M4
- Adafruit MatrixPortal S3
- Adafruit Metro ESP32S2
- Adafruit Metro ESP32S3
- Adafruit Metro M4 Airlift Lite
- Adafruit Metro M4 Express
- Adafruit Metro RP2040
- Adafruit Metro RP2350
- Adafruit Metro nRF52840 Express
- Adafruit Monster M4SK
- Adafruit PyGamer
- Adafruit PyPortal
- Adafruit PyPortal Pynt
- Adafruit PyPortal Titano
- Adafruit Pybadge
- Adafruit QT Py ESP32 PICO
- Adafruit QT Py ESP32-S3 4MB Flash 2MB PSRAM
- Adafruit QT Py ESP32-S3 no psram
- Adafruit QT Py ESP32C3
- Adafruit QT Py ESP32S2
- Adafruit QT Py RP2040
- Adafruit QT2040 Trinkey
- Adafruit Trellis M4 Express
- Adafruit Vindie S2
- Adafruit-Qualia-S3-RGB666
- Ai Thinker ESP32-CAM
- AloriumTech Evo M51
- Archi RP2040
- Arduino Nano 33 BLE
- Arduino Nano 33 BLE Rev2
- Arduino Nano ESP32
- Arduino Nano RP2040 Connect
- Artisense Reference Design RD00
- AtelierDuMaker nRF52840 Breakout
- AutosportLabs-ESP32-CAN-X2
- BARDUINO 4.0.2
- BBQ20KBD
- BDMICRO VINA-D51
- BLE-SS dev board Multi Sensor
- BLING!
- BLOK
- BPI-Bit-S2
- BPI-Leaf-S3
- BPI-PicoW-S3
- BastBLE
- BastWiFi
- Bee-Data-Logger
- Bee-Motion-S3
- Bee-S3
- BlizzardS3
- BlueMicro840
- Bradán Lane STUDIO Explorer Badge
- COSMO-Pico
- CP32-M4
- CRCibernetica IdeaBoard
- Challenger NB RP2040 WiFi
- Challenger RP2040 LTE
- Challenger RP2040 LoRa
- Challenger RP2040 SD/RTC
- Challenger RP2040 SubGHz
- Challenger RP2040 WiFi
- Challenger RP2040 WiFi/BLE
- Challenger+ RP2350 BConnect
- Challenger+ RP2350 WiFi6/BLE5
- CircuitART Zero S3
- CircuitBrains Deluxe
- ColumbiaDSL-Sensor-Board-V1
- CrumpS2
- Cytron EDU PICO W
- Cytron IRIV IO Controller
- Cytron MOTION 2350 Pro
- Cytron Maker Feather AIoT S3
- Cytron Maker Nano RP2040
- Cytron Maker Pi RP2040
- Cytron Maker Uno RP2040
- DFRobot Beetle ESP32-C3
- DFRobot FireBeetle 2 ESP32-S3
- Datanoise PicoADK
- Datanoise PicoADK V2
- Deneyap Kart
- Deneyap Kart 1A
- Deneyap Kart 1A v2
- Deneyap Kart G
- Deneyap Mini
- Deneyap Mini v2
- Diodes Delight Piunora
- DynOSSAT-EDU-OBC
- E-Fidget
- ELECFREAKS PICO:ED
- ES3ink
- ESP 12k NodeMCU
- ESP32 Devkit V1
- ESP32-C3-DevKitM-1
- ESP32-C6-DevKitC-1-N8
- ESP32-C6-DevKitM-1
- ESP32-H2-DevKitM-1
- ESP32-P4-Function-EV
- ESP32-S2-DevKitC-1-N4
- ESP32-S2-DevKitC-1-N4R2
- ESP32-S2-DevKitC-1-N8R2
- ESP32-S3-Box-2.5
- ESP32-S3-Box-Lite
- ESP32-S3-DevKitC-1-N16
- ESP32-S3-DevKitC-1-N32R8
- ESP32-S3-DevKitC-1-N8
- ESP32-S3-DevKitC-1-N8R2
- ESP32-S3-DevKitC-1-N8R8
- ESP32-S3-DevKitC-1-N8R8-with-HACKTABLET
- ESP32-S3-DevKitM-1-N8
- ESP32-S3-EYE
- ESP32-S3-USB-OTG-N8
- ESP8684-DevKitC-02-N4
- Electrolama minik
- Electronut Labs Blip
- Electronut Labs Papyr
- EncoderPad RP2040
- Espressif ESP32 DevKitc V4 WROOM-32E
- Espressif ESP32 DevKitc V4 WROVER
- Espressif ESP32 TTGO T8 v1.7
- Espressif ESP32-EYE
- Espressif ESP32-LyraT
- Espressif-ESP32-S3-LCD-EV-Board
- Espressif-ESP32-S3-LCD-EV-Board_v1.5
- Espruino Bangle.js 2
- Espruino Wifi
- Feather MIMXRT1011
- Feather MIMXRT1062
- FeatherS2
- FeatherS2 Neo
- FeatherS2 PreRelease
- FeatherS3
- FeatherS3 Neo
- Fig Pi
- Flipper Zero Wi-Fi Dev
- Fomu
- Franzininho WIFI w/Wroom
- Franzininho WIFI w/Wrover
- Freenove ESP32-WROVER-DEV-CAM
- Gravitech Cucumber M
- Gravitech Cucumber MS
- Gravitech Cucumber R
- Gravitech Cucumber RS
- HEIA-FR Picomo V2
- HMI-DevKit-1.1
- Hack Club Sprig
- Hardkernel Odroid Go
- Heltec ESP32-S3-WIFI-LoRa-V3
- HexKyS2
- HiiBot BlueFi
- IMXRT1010-EVK
- IMXRT1015-EVK
- IkigaiSense Vita nRF52840
- IoTs2
- Kaluga 1
- LILYGO T-DECK
- LILYGO T-DISPLAY
- LILYGO T-DISPLAY S3 v1.2
- LILYGO T-Display S3 Pro
- LILYGO T-Watch-S3
- LILYGO TEMBED ESP32S3
- LILYGO TTGO T-01C3
- LILYGO TTGO T-DISPLAY v1.1
- LILYGO TTGO T-DISPLAY v1.1 4M
- LILYGO TTGO T-OI PLUS
- LILYGO TTGO T8 ESP32-S2
- LILYGO TTGO T8 ESP32-S2 w/Display
- LOLIN S3 16MB Flash 8MB PSRAM
- LOLIN S3 MINI 4MB Flash 2MB PSRAM
- LOLIN S3 PRO 16MB Flash 8MB PSRAM
- Lilygo T-watch 2020 V3
- Luatos Core-ESP32C3
- M5STACK STAMP-C3
- M5Stack Atom Echo
- M5Stack Atom Lite
- M5Stack Atom Matrix
- M5Stack Atom U
- M5Stack AtomS3
- M5Stack AtomS3 Lite
- M5Stack AtomS3U
- M5Stack Cardputer
- M5Stack Core Basic
- M5Stack Core Fire
- M5Stack Core2
- M5Stack CoreS3
- M5Stack Dial
- M5Stack M5Paper
- M5Stack Stick C
- M5Stack Stick C Plus
- M5Stack Timer Camera X
- MDBT50Q-DB-40
- MDBT50Q-RX Dongle
- MEOWBIT
- MORPHEANS MorphESP-240
- MagiClick S3 N4R2
- Maker Go ESP32C3 Supermini
- Maker Go ESP32C6 Supermini
- Maker badge by Czech maker
- MakerDiary nRF52840 MDK
- MakerDiary nRF52840 MDK USB Dongle
- MakerFabs-ESP32-S3-Parallel-TFT-With-Touch-7inch
- Makerdiary M60 Keyboard
- Makerdiary Pitaya Go
- Makerdiary nRF52840 Connect Kit
- Makerdiary nRF52840 M.2 Developer Kit
- Maple Computing Elite-Pi
- Melopero Shake RP2040
- Metro MIMXRT1011
- MicroDev microC3
- MicroDev microS2
- Mini SAM M4
- MixGo CE
- NUCLEO F446RE
- NUCLEO STM32F746
- NUCLEO STM32F767
- NUCLEO STM32H743
- NanoS3
- Neuron
- NodeMcu-ESP32-C2
- OMGS3
- OPENMV-H7 R1
- Oak Dev Tech BREAD2040
- Oak Dev Tech Cast-Away RP2040
- Oak Dev Tech PixelWing ESP32S2
- Oak Dev Tech RPGA Feather
- Open Hardware Summit 2020 Badge
- Oxocard Artwork
- Oxocard Connect
- Oxocard Galaxy
- Oxocard Science
- P1AM-200
- PCA10056 nRF52840-DK
- PCA10059 nRF52840 Dongle
- PYB LR Nano V2
- Pajenicko PicoPad
- Particle Argon
- Particle Boron
- Particle Xenon
- PillBug
- Pimoroni Badger 2040
- Pimoroni Badger 2040 W
- Pimoroni Inky Frame 5.7
- Pimoroni Inky Frame 7.3
- Pimoroni Interstate 75
- Pimoroni Keybow 2040
- Pimoroni Motor 2040
- Pimoroni PGA2040
- Pimoroni PGA2350
- Pimoroni Pico DV Base W
- Pimoroni Pico LiPo (16MB)
- Pimoroni Pico LiPo (4MB)
- Pimoroni Pico Plus 2
- Pimoroni Pico dv Base
- Pimoroni PicoSystem
- Pimoroni Plasma 2040
- Pimoroni Plasma 2040W
- Pimoroni Plasma 2350
- Pimoroni Servo 2040
- Pimoroni Tiny 2040 (2MB)
- Pimoroni Tiny 2040 (8MB)
- Pimoroni Tiny 2350
- Pimoroni Tiny FX
- ProS3
- PyCubedv04
- PyCubedv04-MRAM
- PyCubedv05
- PyCubedv05-MRAM
- PyKey 18 Numpad
- PyKey 44 Ergo
- PyKey 60
- PyKey 87 TKL
- PyboardV1_1
- RF.Guru RP2040
- RGBTouch Mini
- RP2.65-F
- RP2040 Stamp
- RP2350 Stamp
- RP2350 Stamp XL
- Raspberry Breadstick
- Raspberry Pi 4B
- Raspberry Pi Compute Module 4
- Raspberry Pi Compute Module 4 IO Board
- Raspberry Pi Pico
- Raspberry Pi Pico 2
- Raspberry Pi Pico W
- Raspberry Pi Zero
- Raspberry Pi Zero 2W
- Raspberry Pi Zero W
- Robo HAT MM1 M4
- S2Mini
- S2Pico
- SAM E54 Xplained Pro
- SAM32v26
- SQFMI Watchy
- SSCI ISP1807 Dev Board
- SSCI ISP1807 Micro Board
- ST STM32F746G Discovery
- STM32F412G_DISCO
- STM32F4_DISCO
- Saola 1 w/Wroom
- Saola 1 w/Wrover
- Seeed Studio XIAO ESP32C3
- Seeed XIAO nRF52840 Sense
- Seeed Xiao ESP32-C6 4MB Flash 512KB SRAM
- Seeed Xiao ESP32-S3 Sense
- Seeeduino Wio Terminal
- Seeeduino XIAO RP2040
- Seeeduino XIAO RP2350
- SiLabs xG24 Dev Kit
- SiLabs xG24 Explorer Kit
- Silicognition LLC M4-Shim
- Silicognition LLC RP2040-Shim
- SparkFun MicroMod RP2040 Processor
- SparkFun MicroMod SAMD51 Processor
- SparkFun MicroMod nRF52840 Processor
- SparkFun Pro Micro RP2040
- SparkFun Pro Micro RP2350
- SparkFun Pro nRF52840 Mini
- SparkFun STM32 MicroMod Processor
- SparkFun Teensy MicroMod Processor
- SparkFun Thing Plus - RP2040
- SparkFun Thing Plus - SAMD51
- SparkFun Thing Plus - STM32
- Sparkfun Thing Plus MGM240P
- Spotpear ESP32C3 LCD 1.44
- Sunton ESP32-2424S012
- Sunton-ESP32-8048S050
- Sunton-ESP32-8048S070
- SuperMini NRF52840
- Swan R5
- TG-Boards' Datalore IP M4
- TG-Watch
- THUNDERPACK_v11
- THUNDERPACK_v12
- TTGO T8 ESP32-S2-WROOM
- Targett Module Clip w/Wroom
- Targett Module Clip w/Wrover
- Teensy 4.0
- Teensy 4.1
- Teknikio Bluebird
- The Open Book Feather
- ThingPulse Pendrive S3
- TinkeringTech ScoutMakes Azul
- TinyC6
- TinyPICO
- TinyPICO Nano
- TinyS2
- TinyS3
- TinyWATCH S3
- UARTLogger II
- VCC-GND Studio YD RP2040
- VCC-GND YD-ESP32-S3 (N16R8)
- VCC-GND YD-ESP32-S3 (N8R8)
- VIDI X V1.1
- W5100S-EVB-Pico
- W5500-EVB-Pico
- WK-50 Trackball Keyboard
- WSC-1450
- WarmBit BluePixel nRF52840
- Waveshare ESP32-S2-Pico
- Waveshare ESP32-S2-Pico-LCD
- Waveshare ESP32-S3-GEEK
- Waveshare ESP32-S3-Pico
- Waveshare ESP32-S3-Tiny
- Waveshare ESP32-S3-Zero
- Waveshare ESP32S3 LCD 1.28
- Waveshare RP2040-GEEK
- Waveshare RP2040-LCD-0.96
- Waveshare RP2040-LCD-1.28
- Waveshare RP2040-One
- Waveshare RP2040-PiZero
- Waveshare RP2040-Plus (16MB)
- Waveshare RP2040-Plus (4MB)
- Waveshare RP2040-TOUCH-LCD-1.28
- Waveshare RP2040-Tiny
- Waveshare RP2040-Zero
- WeAct ESP32-C6 (4MB)
- WeAct ESP32-C6 (8MB)
- WeAct Studio Pico
- WeAct Studio Pico 16MB
- WeMos LOLIN32 Lite
- Wemos Lolin C3 Mini
- Wemos Lolin C3 Pico
- Winterbloom Sol
- WisdPi Ardu2040M
- WisdPi Tiny RP2040
- iLabs Challenger 840
- iMX RT 1020 EVK
- iMX RT 1040 EVK
- iMX RT 1050 EVKB
- iMX RT 1060 EVK
- iMX RT 1060 EVKB
- iMX RT1011 Nano Kit
- nanoESP32-S2 w/Wrover
- nanoESP32-S2 w/Wroom
- nice!nano
- nullbits Bit-C PRO
- senseBox MCU-S2 ESP32S2
- splitkb.com Liatris
- stm32f411ce-blackpill
- stm32f411ce-blackpill-with-flash
- sunton_esp32_2432S028
- sunton_esp32_2432S032C
- takayoshiotake Octave RP2040
- uGame22
-
msgpack.pack(obj: object, stream: circuitpython_typing.ByteStream, *, default: Callable[[object], None] | None = None) → None
Output object to stream in msgpack format.
- Parameters:
obj (object) – Object to convert to msgpack format.
stream (ByteStream) – stream to write to
default (Optional[Callable[[object], None]]) – function called for python objects that do not have
a representation in msgpack format.
-
msgpack.unpack(stream: circuitpython_typing.ByteStream, *, ext_hook: Callable[[int, bytes], object] | None = None, use_list: bool = True) → object
Unpack and return one object from stream.
- Parameters:
stream (ByteStream) – stream to read from
ext_hook (Optional[Callable[[int, bytes], object]]) – function called for objects in
msgpack ext format.
use_list (Optional[bool]) – return array as list or tuple (use_list=False).
- Return object:
object read from stream.
-
class msgpack.ExtType(code: int, data: bytes)
ExtType represents ext type in msgpack.
Constructor
:param int code: type code in range 0~127.
:param bytes data: representation.
-
code: int
The type code, in range 0~127.
-
data: bytes
Data.