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.
MpMessagePack pack: <your object>
or:
<your object> messagePacked
MpMessagePack unpack: msgpackBytes
or:
Object fromMessagePack: msgBytes
map := Dictionary new.
map at: 'someArray' asByteArray put: #(1 2.2 #[3 4 5]).
packed := map messagePacked.
(Object fromMessagePack: packed) inspect.
writeStream := WriteStream on: ByteArray new.
encoder := MpEncoder on: writeStream.
encoder nextPut: 1.
encoder nextPut: #(2 3).
dic := Dictionary new.
dic at: 4 put: 5.
encoder nextPut: dic.
encoder nextPut: 'four' asByteArray.
bytes := encoder contents.
readStream := ReadStream on: bytes.
decoder := MpDecoder on: readStream.
[decoder atEnd] whileFalse: [
Transcript cr; show: decoder next printString
]
Please read HowToInstall.md.
Installer squeaksource
project: 'MessagePack';
install: 'ConfigurationOfMessagePack'.
(Smalltalk at: #ConfigurationOfMessagePack) project development load
Gofer it
smalltalkhubUser: 'MasashiUmezawa' project: 'MessagePack';
configuration;
load.
(Smalltalk at: #ConfigurationOfMessagePack) project development load
You might need MpTypeMapper initializeAll
on new encoder/decoder-related updates.