Comments (1)
Thanks for the question. I will try to explain.
Reasons for moving to NuGet
- MemoryPack was written using C# 11 and later features, but a downgraded version was needed to distribute the source code to Unity. This seemed to complicate maintenance a bit.
- In the previous version, the source code was committed twice, once for Unity and once for dotnet. These synchronization errors have also occurred.
- Previous versions had API differences between MemoryPack built for Unity and MemoryPack from NuGet.
- MemoryPack depends on System.Runtime.CompilerServices.dll. For users, it was inconvenient to import this and resolve conflicts.
- In recent years, the NuGet libraries have been made AOT-safe by Source Generator. The possibility of using NuGet libraries from Unity is expanding.
Reasons for the increased Unity support version
- MemoryPack includes a SourceGenerator. For this to work with older Unity, the source generator for the Roslyn3 series and the code to be generated must work with C# 9. If this can be stopped, it will be easier to operate.
- NuGetForUnity did not have the ability to distribute multiple versions of SourceGenerator.
- We hope this issue will be resolved here: GlitchEnzo/NuGetForUnity#616.
- MemoryPack is also a progressive library with its own binary usage. We are also hopeful that most users will take advantage of the new Unity, as most probably are not conservative.
These are my views included.
However, Cysharp is taking a similar direction for dotnet and Unity combined libraries such as R3 , ZLogger, etc.
from memorypack.
Related Issues (20)
- Make ContentType a static const string HOT 1
- .NET 8 class with primary constructors not supported HOT 2
- Support types that aren't known at compile time HOT 2
- Allow snake_case for constructor arguments HOT 5
- Brotli Decompression issue, when not using compressionlevel.fastest HOT 5
- Variable name starting with UnderScore is not recognized correctly in Unity HOT 3
- Model versioning compatibility HOT 1
- Any way of using MemoryPackable collection as generic? HOT 9
- Build Error in the script MemoryPackSerializerOptions.cs in MemoryPack.Core HOT 2
- CS0103 issue when upgrade project from NET6.0 to NET8.0 HOT 3
- Native AOT fully compatibility
- namespace issues with code generator version 1.2x HOT 12
- BrotliCompressor.CompressCore rare case
- Something change with decimal types? HOT 2
- 1.20.2 breaks enum property initialization when enum is declared in another project HOT 1
- Guidance for migrating from MessagePack to MemoryPack HOT 1
- Deserialization logic assumes `null` default for some value types in v1.20.X HOT 3
- Regression with base classes HOT 1
- Can we have ConvertToJson? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from memorypack.