Code Monkey home page Code Monkey logo

Comments (1)

hadashiA avatar hadashiA commented on September 27, 2024

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.
  • 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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.