[Meta] List of Changes in FlatSharp 6
jamescourtney opened this issue · comments
This is a tracking item to list the changes in Flatsharp 6.0.0.
Breaking changes:
ISharedStringReader
has been removed.FlatBufferItem.CustomGetter
has been removed.ArrayInputBuffer
is now a structMemoryInputBuffer
is now a structReadOnlyMemoryInputBuffer
is now a structSharedStringReaderFactory
has been removed fromIInputBuffer
.ArrayInputBuffer.Wrapper
has been removedMemoryInputBuffer.Wrapper
has been removedReadOnlyMemoryInputBuffer.Wrapper
has been removed.IFlatBufferAddressableStruct
has been removed.SpanWriter.Instance
has been removed. Usedefault(SpanWriter)
instead.ArrayInputBuffer
has been split intoArrayInputBuffer
andArraySegmentInputBuffer
- The
fs_fileId
attribute has been dropped. - Unquoted metadata no longer supported. Compiler now runs through
flatc
, soattribute
declarations are now necessary. - The
FlatSharp.Compiler
Package no longer targets .NET Framework or .NET Core 2.1 (You can still use it to build code that will run in these frameworks, though!) ISharedStringWriter
has been changed. ThePrepareWrite
method has been renamedReset
, and there is a new flag calledIsDirty
that is expected to be true if the shared string writer has any pending strings.
Other changes
FlatBufferSerializer
exposes some additional methods that allow avoiding boxing ofIInputBuffer
instances.ArrayInputBuffer
now ~10% faster as a result of the split above.- WriteThrough now supported for value structs
- Serializers now have a default instance of
SharedStringWriter
with a hash table capacity of about 1K items.
Major changes
- Compiler is being completely rewritten to be based on bfbs output from flatc.
PropertyCache
,VectorCache
, andVectorCacheMutable
are being collapsed intoProgressive
deserialization mode.- The
SharedString
type has been removed and replaced with an annotation. No moreSharedString
type muddling things! - Unions are now value types
- The
Flatsharp.Unsafe
package has been removed.