Skip to content

Latest commit

History

88 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

msgpack-smalltalk

CI

MessagePack serialization library for various Smalltalk dialects.

  • Squeak
  • Pharo
  • VisualWorks
  • VA Smalltalk
  • Dolphin Smalltalk
  • GNU Smalltalk (Beta)
  • Cuis

Sources are put as Cypress for the neutral accesses from various Smalltalk dialects.

How to use

Serialization

MpMessagePackpack:<your object>

or:

<your object> messagePacked

Deserialization

MpMessagePackunpack: msgpackBytes

or:

ObjectfromMessagePack: msgBytes

Samples

map :=Dictionarynew.
map at:'someArray' asByteArray put:#(1 2.2 #[3 4 5]).
packed := map messagePacked.
(ObjectfromMessagePack: packed) inspect.
writeStream :=WriteStreamon:ByteArraynew.
encoder :=MpEncoderon: writeStream.
encoder nextPut:1.
encoder nextPut:#(2 3).
dic :=Dictionarynew.
dic at:4put:5.
encoder nextPut: dic.
encoder nextPut:'four' asByteArray.
bytes := encoder contents.
readStream :=ReadStreamon: bytes.
decoder :=MpDecoderon: readStream.
[decoder atEnd] whileFalse: [
Transcript cr; show: decoder next printString
]

How to install

Please read HowToInstall.md.

Loading the latest development version

Squeak 4

Installer squeaksource
project:'MessagePack';
install:'ConfigurationOfMessagePack'. (Smalltalkat:#ConfigurationOfMessagePack) project development load

Pharo & Squeak 5+

Metacellonewbaseline:'MessagePack';
repository:'github://msgpack/msgpack-smalltalk:develop/repository';
load.

You might need MpTypeMapper initializeAll on new encoder/decoder-related updates.

Limitation on Squeak 5+

Starting with Squeak 5 and 6, DateAndTime only supports microsecond precision. Because of this, nanosecond values are not properly decoded as DateAndTime. Two unit tests (testPackUnpackTimestamp64, 96) fail on Squeak 5 and 6.

About

MessagePack serialization library for various Smalltalk dialects / msgpack.org[Smalltalk]

Topics

Resources

Stars

23 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages