1
2#------------------------------------------------------------------------------
3# $File: sereal,v 1.3 2015/02/05 19:14:45 christos Exp $
4# sereal: file(1) magic the Sereal binary serialization format
5#
6# From: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
7#
8# See the specification of the format at
9# https://github.com/Sereal/Sereal/blob/master/sereal_spec.pod#document-header-format
10#
11# I'd have liked to do the byte&0xF0 matching against 0, 1, 2 ... by
12# doing (byte&0xF0)>>4 here, but unfortunately that's not
13# supported. So when we print out a message about an unknown format
14# we'll print out e.g. 0x30 instead of the more human-readable
15# 0x30>>4.
16#
17# See https://github.com/Sereal/Sereal/commit/35372ae01d in the
18# Sereal.git repository for test Sereal data.
190         name                sereal
20>4        byte&0x0F x                   (version %d,
21>4        byte&0xF0 0x00                uncompressed)
22>4        byte&0xF0 0x10                compressed with non-incremental Snappy)
23>4        byte&0xF0 0x20                compressed with incremental Snappy)
24>4        byte&0xF0 >0x20               unknown subformat, flag: %d>>4)
25
260         string/b  \=srl               Sereal data packet
27!:mime application/sereal
28>&0       use                 sereal
290         string/b  \=\xF3rl  Sereal data packet
30!:mime application/sereal
31>&0       use                 sereal
320         string/b  \=\xC3\xB3rl        Sereal data packet, UTF-8 encoded
33!:mime application/sereal
34>&0       use                 sereal
35
36