jsonbinpack
Version:
A space-efficient schema-driven binary JSON serialization format based on JSON Schema
76 lines (75 loc) • 2.19 kB
JSON
{
"type": "object",
"encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
"options": {
"propertyEncodings": {
"optimizations": {
"type": "array",
"encoding": "FLOOR_TYPED_LENGTH_PREFIX",
"options": {
"minimum": 0,
"encoding": {
"type": "object",
"encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
"options": {
"propertyEncodings": {
"includes": {
"type": "array",
"encoding": "FLOOR_TYPED_LENGTH_PREFIX",
"options": {
"minimum": 0,
"encoding": {
"type": "string",
"encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
"options": {
"minimum": 0
}
},
"prefixEncodings": []
}
},
"excludes": {
"type": "array",
"encoding": "FLOOR_TYPED_LENGTH_PREFIX",
"options": {
"minimum": 0,
"encoding": {
"type": "string",
"encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
"options": {
"minimum": 0
}
},
"prefixEncodings": []
}
},
"lossy": {
"type": "enum",
"encoding": "BOUNDED_CHOICE_INDEX",
"options": {
"choices": [
false,
true
]
}
}
},
"requiredProperties": [
"excludes",
"includes"
],
"booleanRequiredProperties": [
"lossy"
]
}
},
"prefixEncodings": []
}
}
},
"requiredProperties": [
"optimizations"
],
"booleanRequiredProperties": []
}
}