35 lines
1.2 KiB
Text
35 lines
1.2 KiB
Text
|
|
#------------------------------------------------------------------------------
|
|
# $File: sereal,v 1.3 2015/02/05 19:14:45 christos Exp $
|
|
# sereal: file(1) magic the Sereal binary serialization format
|
|
#
|
|
# From: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
|
|
#
|
|
# See the specification of the format at
|
|
# https://github.com/Sereal/Sereal/blob/master/sereal_spec.pod#document-header-format
|
|
#
|
|
# I'd have liked to do the byte&0xF0 matching against 0, 1, 2 ... by
|
|
# doing (byte&0xF0)>>4 here, but unfortunately that's not
|
|
# supported. So when we print out a message about an unknown format
|
|
# we'll print out e.g. 0x30 instead of the more human-readable
|
|
# 0x30>>4.
|
|
#
|
|
# See https://github.com/Sereal/Sereal/commit/35372ae01d in the
|
|
# Sereal.git repository for test Sereal data.
|
|
0 name sereal
|
|
>4 byte&0x0F x (version %d,
|
|
>4 byte&0xF0 0x00 uncompressed)
|
|
>4 byte&0xF0 0x10 compressed with non-incremental Snappy)
|
|
>4 byte&0xF0 0x20 compressed with incremental Snappy)
|
|
>4 byte&0xF0 >0x20 unknown subformat, flag: %d>>4)
|
|
|
|
0 string/b \=srl Sereal data packet
|
|
!:mime application/sereal
|
|
>&0 use sereal
|
|
0 string/b \=\xF3rl Sereal data packet
|
|
!:mime application/sereal
|
|
>&0 use sereal
|
|
0 string/b \=\xC3\xB3rl Sereal data packet, UTF-8 encoded
|
|
!:mime application/sereal
|
|
>&0 use sereal
|
|
|