CBOR
Concise Binary Object Representation
Introduction
The CBOR (Concise Binary Object Representation) format is a binary serialization format suitable when speed and storage efficiency are important. It follows the data model of JSON closely, and like JSON, it enables data interchange without needing a formally specified schema. For further details about CBOR, see RFC 8949 and other CBOR specs.
Stencila provides support for CBOR as a faster, more compact, alternative to JSON for storing documents.
Usage
Use the .cbor file extension, or the --to cbor or --from cbor options, when converting to/from CBOR e.g.
stencila convert doc.smd soc.cborImplementation
Stencila support lossless, bi-directional conversion between Stencila documents and CBOR powered by the Rust crate ciborium.
Support
Stencila supports these operations for CBOR:
- decoding from a file
- encoding to a file
Support and degree of loss by node type:
| Node type | Encoding | Decoding | Notes |
|---|---|---|---|
| Works | |||
| Article | 🟢 No loss | 🟢 No loss | |
| AudioObject | 🟢 No loss | 🟢 No loss | |
| AuthorRole | 🟢 No loss | 🟢 No loss | |
| Chat | 🟢 No loss | 🟢 No loss | |
| ChatMessage | 🟢 No loss | 🟢 No loss | |
| ChatMessageGroup | 🟢 No loss | 🟢 No loss | |
| Claim | 🟢 No loss | 🟢 No loss | |
| Collection | 🟢 No loss | 🟢 No loss | |
| Comment | 🟢 No loss | 🟢 No loss | |
| CreativeWork | 🟢 No loss | 🟢 No loss | |
| Directory | 🟢 No loss | 🟢 No loss | |
| Figure | 🟢 No loss | 🟢 No loss | |
| File | 🟢 No loss | 🟢 No loss | |
| ImageObject | 🟢 No loss | 🟢 No loss | |
| MediaObject | 🟢 No loss | 🟢 No loss | |
| Periodical | 🟢 No loss | 🟢 No loss | |
| Prompt | 🟢 No loss | 🟢 No loss | |
| PublicationIssue | 🟢 No loss | 🟢 No loss | |
| PublicationVolume | 🟢 No loss | 🟢 No loss | |
| Review | 🟢 No loss | 🟢 No loss | |
| SoftwareApplication | 🟢 No loss | 🟢 No loss | |
| SoftwareSourceCode | 🟢 No loss | 🟢 No loss | |
| Table | 🟢 No loss | 🟢 No loss | |
| TableCell | 🟢 No loss | 🟢 No loss | |
| TableRow | 🟢 No loss | 🟢 No loss | |
| VideoObject | 🟢 No loss | 🟢 No loss | |
| Prose | |||
| Admonition | 🟢 No loss | 🟢 No loss | |
| Annotation | 🟢 No loss | 🟢 No loss | |
| Cite | 🟢 No loss | 🟢 No loss | |
| CiteGroup | 🟢 No loss | 🟢 No loss | |
| DefinedTerm | 🟢 No loss | 🟢 No loss | |
| Emphasis | 🟢 No loss | 🟢 No loss | |
| Heading | 🟢 No loss | 🟢 No loss | |
| Link | 🟢 No loss | 🟢 No loss | |
| List | 🟢 No loss | 🟢 No loss | |
| ListItem | 🟢 No loss | 🟢 No loss | |
| Note | 🟢 No loss | 🟢 No loss | |
| Paragraph | 🟢 No loss | 🟢 No loss | |
| QuoteBlock | 🟢 No loss | 🟢 No loss | |
| QuoteInline | 🟢 No loss | 🟢 No loss | |
| Section | 🟢 No loss | 🟢 No loss | |
| Strikeout | 🟢 No loss | 🟢 No loss | |
| Strong | 🟢 No loss | 🟢 No loss | |
| Subscript | 🟢 No loss | 🟢 No loss | |
| Superscript | 🟢 No loss | 🟢 No loss | |
| Text | 🟢 No loss | 🟢 No loss | |
| ThematicBreak | 🟢 No loss | 🟢 No loss | |
| Underline | 🟢 No loss | 🟢 No loss | |
| Math | |||
| MathBlock | 🟢 No loss | 🟢 No loss | |
| MathInline | 🟢 No loss | 🟢 No loss | |
| Code | |||
| CodeBlock | 🟢 No loss | 🟢 No loss | |
| CodeChunk | 🟢 No loss | 🟢 No loss | |
| CodeExpression | 🟢 No loss | 🟢 No loss | |
| CodeInline | 🟢 No loss | 🟢 No loss | |
| CompilationMessage | 🟢 No loss | 🟢 No loss | |
| ExecutionMessage | 🟢 No loss | 🟢 No loss | |
| Data | |||
| Array | 🟢 No loss | 🟢 No loss | |
| ArrayHint | 🟢 No loss | 🟢 No loss | |
| ArrayValidator | 🟢 No loss | 🟢 No loss | |
| Boolean | 🟢 No loss | 🟢 No loss | |
| BooleanValidator | 🟢 No loss | 🟢 No loss | |
| ConstantValidator | 🟢 No loss | 🟢 No loss | |
| Cord | 🟢 No loss | 🟢 No loss | |
| Datatable | 🟢 No loss | 🟢 No loss | |
| DatatableColumn | 🟢 No loss | 🟢 No loss | |
| DatatableColumnHint | 🟢 No loss | 🟢 No loss | |
| DatatableHint | 🟢 No loss | 🟢 No loss | |
| Date | 🟢 No loss | 🟢 No loss | |
| DateTime | 🟢 No loss | 🟢 No loss | |
| DateTimeValidator | 🟢 No loss | 🟢 No loss | |
| DateValidator | 🟢 No loss | 🟢 No loss | |
| Duration | 🟢 No loss | 🟢 No loss | |
| DurationValidator | 🟢 No loss | 🟢 No loss | |
| EnumValidator | 🟢 No loss | 🟢 No loss | |
| Integer | 🟢 No loss | 🟢 No loss | |
| IntegerValidator | 🟢 No loss | 🟢 No loss | |
| Null | 🟢 No loss | 🟢 No loss | |
| Number | 🟢 No loss | 🟢 No loss | |
| NumberValidator | 🟢 No loss | 🟢 No loss | |
| Object | 🟢 No loss | 🟢 No loss | |
| ObjectHint | 🟢 No loss | 🟢 No loss | |
| String | 🟢 No loss | 🟢 No loss | |
| StringHint | 🟢 No loss | 🟢 No loss | |
| StringValidator | 🟢 No loss | 🟢 No loss | |
| Time | 🟢 No loss | 🟢 No loss | |
| TimeValidator | 🟢 No loss | 🟢 No loss | |
| Timestamp | 🟢 No loss | 🟢 No loss | |
| TimestampValidator | 🟢 No loss | 🟢 No loss | |
| TupleValidator | 🟢 No loss | 🟢 No loss | |
| Unknown | 🟢 No loss | 🟢 No loss | |
| UnsignedInteger | 🟢 No loss | 🟢 No loss | |
| Flow | |||
| Button | 🟢 No loss | 🟢 No loss | |
| CallArgument | 🟢 No loss | 🟢 No loss | |
| CallBlock | 🟢 No loss | 🟢 No loss | |
| CodeLocation | 🟢 No loss | 🟢 No loss | |
| CompilationDigest | 🟢 No loss | 🟢 No loss | |
| ExecutionDependant | 🟢 No loss | 🟢 No loss | |
| ExecutionDependency | 🟢 No loss | 🟢 No loss | |
| ExecutionTag | 🟢 No loss | 🟢 No loss | |
| ForBlock | 🟢 No loss | 🟢 No loss | |
| Form | 🟢 No loss | 🟢 No loss | |
| Function | 🟢 No loss | 🟢 No loss | |
| IfBlock | 🟢 No loss | 🟢 No loss | |
| IfBlockClause | 🟢 No loss | 🟢 No loss | |
| IncludeBlock | 🟢 No loss | 🟢 No loss | |
| Parameter | 🟢 No loss | 🟢 No loss | |
| Variable | 🟢 No loss | 🟢 No loss | |
| Walkthrough | 🟢 No loss | 🟢 No loss | |
| WalkthroughStep | 🟢 No loss | 🟢 No loss | |
| Style | |||
| StyledBlock | 🟢 No loss | 🟢 No loss | |
| StyledInline | 🟢 No loss | 🟢 No loss | |
| Edits | |||
| InstructionBlock | 🟢 No loss | 🟢 No loss | |
| InstructionInline | 🟢 No loss | 🟢 No loss | |
| InstructionMessage | 🟢 No loss | 🟢 No loss | |
| PromptBlock | 🟢 No loss | 🟢 No loss | |
| SuggestionBlock | 🟢 No loss | 🟢 No loss | |
| SuggestionInline | 🟢 No loss | 🟢 No loss | |
| Config | |||
| Config | 🟢 No loss | 🟢 No loss | |
| Other | |||
| Brand | 🟢 No loss | 🟢 No loss | |
| ContactPoint | 🟢 No loss | 🟢 No loss | |
| Enumeration | 🟢 No loss | 🟢 No loss | |
| Grant | 🟢 No loss | 🟢 No loss | |
| ModelParameters | 🟢 No loss | 🟢 No loss | |
| MonetaryGrant | 🟢 No loss | 🟢 No loss | |
| Organization | 🟢 No loss | 🟢 No loss | |
| Person | 🟢 No loss | 🟢 No loss | |
| PostalAddress | 🟢 No loss | 🟢 No loss | |
| Product | 🟢 No loss | 🟢 No loss | |
| PropertyValue | 🟢 No loss | 🟢 No loss | |
| ProvenanceCount | 🟢 No loss | 🟢 No loss | |
| RawBlock | 🟢 No loss | 🟢 No loss | |
| Thing | 🟢 No loss | 🟢 No loss |
See the Rust crate codec-cbor for more details.