jsonbinpack
Version:
A space-efficient schema-driven binary JSON serialization format based on JSON Schema
91 lines (90 loc) • 2.23 kB
JSON
{
"type": "object",
"encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
"options": {
"propertyEncodings": {
"foo": {
"type": "array",
"encoding": "FLOOR_TYPED_LENGTH_PREFIX",
"options": {
"minimum": 0,
"encoding": {
"type": "string",
"encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
"options": {
"minimum": 0
}
},
"prefixEncodings": []
}
},
"main": {
"type": "object",
"encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
"options": {
"propertyEncodings": {
"files": {
"type": "object",
"encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
"options": {
"propertyEncodings": {},
"requiredProperties": [],
"booleanRequiredProperties": []
}
},
"src": {
"type": "array",
"encoding": "FLOOR_TYPED_LENGTH_PREFIX",
"options": {
"minimum": 0,
"encoding": {
"type": "string",
"encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
"options": {
"minimum": 0
}
},
"prefixEncodings": []
}
}
},
"requiredProperties": [
"files",
"src"
],
"booleanRequiredProperties": []
}
},
"options": {
"type": "enum",
"encoding": "BOUNDED_CHOICE_INDEX",
"options": {
"choices": [
{
"force": false,
"no-write": false
},
{
"force": false,
"no-write": true
},
{
"force": true,
"no-write": false
},
{
"force": true,
"no-write": true
}
]
}
}
},
"requiredProperties": [
"foo",
"main",
"options"
],
"booleanRequiredProperties": []
}
}