-
-
Notifications
You must be signed in to change notification settings - Fork 51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FlatSharp 8 Planning #448
Comments
can you publish the compiler as dotnet tool? It would be very handy |
I'm a little hesitant, but maybe you can persuade me. Basically, any given build of the compiler only works with that build of the runtime. So Compiler 7.8 only promises to work correctly with Runtime 7.8. I'm a little worried that if I publish as a dotnet tool then people will update the compiler without updating the runtime. Is that a real problem? I know you can do that today by changing the version of the compiler's nuget package, but that's a more intentional thing. |
my use case is simply that before starting to use your wonderful library the code was generated by a powershell script for both c# and c++ and differences in generated code were easily inspected by git tools. you could check if the generated code matches with the installed runtime like Google.FlatBuffers does,
but if you think that it creates more problems than it solves you could leave it as it is maybe you could just add to the documentation section |
This issue is to track progress and objectives for a future FlatSharp 8 release.
What's wrong with FlatSharp 7?
Nothing major. It works fine! Today, FlatSharp 7 supports .NET Framework, .NET Standard 2.0/2.1, .NET 6, 7, 8, and (soon) 9. This is a robust compatibility matrix. This wide compatibility comes with limitations:
Span<T>
is limited to the 32 bit address space)Plans going forward
FlatSharp 8 is an upcoming release that will support .NET 9 (and above) only. FlatSharp 7 will continue to support older versions of .NET in addition to .NET 9. While I don't expect to develop tons more features for FlatSharp 7 going forward, I'm committed to:
Plans for FlatSharp 8
The introduction of the
allows ref struct
anti-constraint in .NET 9 is a big deal for FlatSharp. It allows us to remove the explicit dependency onSpan<byte>
, which will allow supporting 64-bit buffers in turn. In place of a hard dependency onSpan<byte>
, we'll define something along the following lines:This change will address several structural issues in FlatSharp, such as proper 64-bit support and extensibility.
The Chopping Block
The following features are being considered for removal in FlatSharp 8:
Other new features
.GetMaxSize()
, FlatSharp 8 will expose a.GetActualSize()
method, which will return the precise number of bytes necessary to serialize an object.The text was updated successfully, but these errors were encountered: