doc/apps: Add BARE

This commit is contained in:
Jiri Vlasak
2026-01-21 13:03:07 +01:00
committed by Xiang Xiao
parent baba361bb1
commit 4710b2f632
@@ -0,0 +1,39 @@
===========================================
``bare`` Binary Application Record Encoding
===========================================
BARE is a simple binary representation for structured application data, see
https://baremessages.org/.
BARE implementation ported to NuttX is ``cbare``, see
https://git.sr.ht/~fsx/cbare.
BARE_ is similar to other binary formats like CBOR_, BSON_, or `Protocol
Buffers`_.
.. _BARE: https://baremessages.org/
.. _CBOR: https://cbor.io/
.. _BSON: https://bsonspec.org/
.. _Protocol Buffers: https://protobuf.dev/
BARE at glance, from its web page:
- Messages are encoded in binary and compact in size. Messages do not contain
schema information — they are not self-describing.
- BARE is optimized for small messages. It is not optimized for encoding large
amounts of data in a single message, or efficiently reading a message with
fields of a fixed size. However, all types are aligned to 8 bits, which does
exchange some space for simplicity.
- BARE's approach to extensibility is conservative: messages encoded today will
be decodable tomorrow, and vice-versa. But extensibility is still possible;
implementations can choose to decode user-defined types at a higher level and
map them onto arbitrary data types.
- The specification is likewise conservative. Simple implementations of message
decoders and encoders can be written inside of an afternoon.
- An optional DSL is provided to document message schemas and provide a source
for code generation. However, if you prefer, you may also define your schema
using the type system already available in your programming language.