MemoryPack
bridge-info
MemoryPack | bridge-info | |
---|---|---|
5 | 1 | |
2,806 | 8 | |
3.2% | - | |
8.8 | 3.2 | |
25 days ago | 12 months ago | |
C# | ||
MIT License | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
MemoryPack
- .NET 9 will be putting BinaryFormatter out to pasture
-
Godot + MemoryPack
I just stumbled over the serializer MemoryPack, which looks incredible.
-
Fury: 170x faster than JDK, fast serialization powered by JIT and Zero-copy
Given it's a binary serialization framework, it should not be too difficult, because the domain is well-explored and numerous libraries exist in C# which address same goals that Fury does.
More popular/newer examples are https://github.com/Cysharp/MemoryPack (which is similar to Fury with its own spec, C#-code first schema), https://github.com/MessagePack-CSharp/MessagePack-CSharp or even gRPC / Protobuf tooling https://github.com/grpc/grpc-dotnet
-
Native AOT Overview
With Unity/IL2CPP stuff: For general-purpose serialization libraries like JSON, you sometimes need to provide hints to make sure types are included: https://github.com/jilleJr/Newtonsoft.Json-for-Unity/wiki/Fi...
For schema serialization on known types, there are codegen tools (i.e. moc for MessagePack): https://github.com/neuecc/MessagePack-CSharp
MessagePack is migrating to Rosalyn code generators, so basically invisible codegen. Cysharp's newer serialization library, MessagePack, already uses this: https://github.com/Cysharp/MemoryPack
- GitHub - Cysharp/MemoryPack: Zero encoding extreme performance binary serializer for C#.
bridge-info
-
Native AOT Overview
None of those are working yet. I'm hoping to get things going with MAUI.
But I've made some progress with Avalonia.
Here's a sample using Native AOT and Avalonia, with a projection to Rust:
https://github.com/sourcegear/bridge-info/tree/main/samples/...
And here's (basically) the same sample projected to TypeScript:
https://github.com/sourcegear/bridge-info/tree/main/samples/...
These are built using the binding generator I mentioned elsewhere in the comments here. All this stuff is just raw tech, not a ready-to-use solution.
What are some alternatives?
fury-benchmarks - Serialization Benchmarks for fury with other libraries
janino - Janino is a super-small, super-fast Java™ compiler.
incubator-fury - A blazingly fast multi-language serialization framework powered by JIT and zero-copy.
corert - This repo contains CoreRT, an experimental .NET Core runtime optimized for AOT (ahead of time compilation) scenarios, with the accompanying compiler toolchain.
jvm-serializers - Benchmark comparing serialization libraries on the JVM
.NET Runtime - .NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
grpc-dotnet - gRPC for .NET
Hacktoberfest2023 - About Make your Pull Request on Hacktoberfest 2023. Don't forget to spread love and if you like give us a ⭐️
MessagePack for C# (.NET, .NET Core, Unity, Xamarin) - Extremely Fast MessagePack Serializer for C#(.NET, .NET Core, Unity, Xamarin). / msgpack.org[C#]
bflat - C# as you know it but with Go-inspired tooling (small, selfcontained, and native executables)
Oberon - Oberon parser, code model & browser, compiler and IDE with debugger