This repository has been archived by the owner on Feb 8, 2022. It is now read-only.
0.2.1 release details
Updating from Froto 0.1.0
Core
Froto.Core
was reworked to provide serialization and deserialization of
all supported wire types and to minimize buffer copying.- Code depending on
Froto.Core.IO
will need to be rewritten to use the
following modules and types:Froto.Core.WireFormat
Froto.Core.Encoding.RawField
Froto.Core.ZeroCopyBuffer
and subclasses
- Alternatively, the functions in the
Froto.Core.Encoding.Serializer
module can provide a slightly higher level of abstraction. - Or, see next.
- Code depending on
- Added a framework for easily constructing serializable class types.
- See
Froto.Core.Encoding.MessageBase
for an abstract base class which
provides the serialization framework, and see
Froto.Core.Test/ExampleProtoClass.fs
for example usage.
- See
Parser
-
The parser now generates an AST based on Discriminated Unions, rather than
objects.Froto.Parser.Ast
(and the underlying parser) now support the full proto2
and proto3 languages. -
The old primary class,
Froto.Parser.ProtoAst.ProtoFile
has been renamed to
Froto.Parser.Model.ProtoFile
and given static factory methods to simplify
access from C#, VB.net, etc.Note that this model curently only supports a subset of the proto2 language.
This will be expanded in later releases to fully support proto2 & proto3.ProtoFile.ParseString(s:string)
ProtoFile.ParseStream(streamName:string, stream:System.IO.Stream)
ProtoFile.ParseFile(fileName:string)