|
@@ -68,18 +68,20 @@ running unit tests.
|
|
|
Nano version
|
|
|
============================
|
|
|
|
|
|
-Nano is a special code generator and runtime library designed specially
|
|
|
-for Android, and is very resource-friendly in both the amount of code
|
|
|
-and the runtime overhead. An overview of Nano features:
|
|
|
+JavaNano is a special code generator and runtime library designed specially for
|
|
|
+resource-restricted systems, like Android. It is very resource-friendly in both
|
|
|
+the amount of code and the runtime overhead. Here is an overview of JavaNano
|
|
|
+features compared with the official Java protobuf:
|
|
|
|
|
|
- No descriptors or message builders.
|
|
|
- All messages are mutable; fields are public Java fields.
|
|
|
- For optional fields only, encapsulation behind setter/getter/hazzer/
|
|
|
clearer functions is opt-in, which provide proper 'has' state support.
|
|
|
-- If not opted in, has state is not available. Serialization outputs
|
|
|
- all fields not equal to their defaults (see important implications
|
|
|
- below).
|
|
|
-- Required fields are always serialized.
|
|
|
+- For proto2, if not opted in, has state (field presence) is not available.
|
|
|
+ Serialization outputs all fields not equal to their defaults
|
|
|
+ (see important implications below).
|
|
|
+ The behavior is consistent with proto3 semantics.
|
|
|
+- Required fields (proto2 only) are always serialized.
|
|
|
- Enum constants are integers; protection against invalid values only
|
|
|
when parsing from the wire.
|
|
|
- Enum constants can be generated into container interfaces bearing
|
|
@@ -88,8 +90,8 @@ and the runtime overhead. An overview of Nano features:
|
|
|
- Similarly CodedOutputByteBufferNano can only write to byte[].
|
|
|
- Repeated fields are in arrays, not ArrayList or Vector. Null array
|
|
|
elements are allowed and silently ignored.
|
|
|
-- Full support of serializing/deserializing repeated packed fields.
|
|
|
-- Support of extensions.
|
|
|
+- Full support for serializing/deserializing repeated packed fields.
|
|
|
+- Support extensions (in proto2).
|
|
|
- Unset messages/groups are null, not an immutable empty default
|
|
|
instance.
|
|
|
- toByteArray(...) and mergeFrom(...) are now static functions of
|
|
@@ -200,7 +202,7 @@ optional_field_style={default,accessors,reftypes} (default: default)
|
|
|
|
|
|
In the default style, optional fields translate into public mutable
|
|
|
Java fields, and the serialization process is as discussed in the
|
|
|
- "IMPORTANT" section above.
|
|
|
+ "IMPORTANT" section above.
|
|
|
|
|
|
* accessors *
|
|
|
|