Skip to content
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

Serialization Simplification #171

Merged
merged 29 commits into from
Oct 31, 2023
Merged

Serialization Simplification #171

merged 29 commits into from
Oct 31, 2023

Commits on Oct 26, 2023

  1. NATS buffer writer

    mtmk committed Oct 26, 2023
    Configuration menu
    Copy the full SHA
    b987f00 View commit details
    Browse the repository at this point in the history
  2. Example native AOT project

    mtmk committed Oct 26, 2023
    Configuration menu
    Copy the full SHA
    b9398db View commit details
    Browse the repository at this point in the history
  3. GH workflow with .NET 8.x

    mtmk committed Oct 26, 2023
    Configuration menu
    Copy the full SHA
    31ca589 View commit details
    Browse the repository at this point in the history

Commits on Oct 27, 2023

  1. Simplify serializer interface with IBufferWriter

    IBufferWriter is part of the standard runtime and since we're
    not using the property introduced by our interface ICountableBuffer
    (which extends IBufferWriter)there is no reason to keep that
    dependency on the public interface.
    mtmk committed Oct 27, 2023
    Configuration menu
    Copy the full SHA
    1c050d2 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    2c43029 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    bd84448 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    a0b2e7e View commit details
    Browse the repository at this point in the history
  5. Enabled project trim warnings

    mtmk committed Oct 27, 2023
    Configuration menu
    Copy the full SHA
    a68be08 View commit details
    Browse the repository at this point in the history

Commits on Oct 30, 2023

  1. Configuration menu
    Copy the full SHA
    e035240 View commit details
    Browse the repository at this point in the history
  2. Replaced JSON serializer with JSON contexts

    * Simplified INatsSerializer a little more. (Serialize method's return
      value wasn't used)
    
    * Removed the default JSON serializer which was serializing any object
      using reflection. Reflection isn't possible with native AOT. This
      also makes serialization more explicit.
    
    * Added a UTF8 primitives serializer in the default serializer chain
      to cover simple use cases like sending strings or ints.
    
    * Added JSON serializer contexts for JS, Obj and Services models.
    mtmk committed Oct 30, 2023
    Configuration menu
    Copy the full SHA
    c3279f9 View commit details
    Browse the repository at this point in the history
  3. Native AOT tests

    mtmk committed Oct 30, 2023
    Configuration menu
    Copy the full SHA
    e577da9 View commit details
    Browse the repository at this point in the history
  4. Serialization docs

    mtmk committed Oct 30, 2023
    Configuration menu
    Copy the full SHA
    2b69bea View commit details
    Browse the repository at this point in the history
  5. Reverted test debug code

    mtmk committed Oct 30, 2023
    Configuration menu
    Copy the full SHA
    2faa786 View commit details
    Browse the repository at this point in the history
  6. Reverted test debug code

    mtmk committed Oct 30, 2023
    Configuration menu
    Copy the full SHA
    49be4db View commit details
    Browse the repository at this point in the history
  7. Project naming fix

    mtmk committed Oct 30, 2023
    Configuration menu
    Copy the full SHA
    81e410c View commit details
    Browse the repository at this point in the history
  8. Fixed warnings and format

    mtmk committed Oct 30, 2023
    Configuration menu
    Copy the full SHA
    1f819ab View commit details
    Browse the repository at this point in the history
  9. Reverted test debug code

    mtmk committed Oct 30, 2023
    Configuration menu
    Copy the full SHA
    a2ba2cd View commit details
    Browse the repository at this point in the history
  10. Reverted release workflow

    mtmk committed Oct 30, 2023
    Configuration menu
    Copy the full SHA
    101fd9f View commit details
    Browse the repository at this point in the history
  11. Additional serializer docs

    mtmk committed Oct 30, 2023
    Configuration menu
    Copy the full SHA
    faac0a1 View commit details
    Browse the repository at this point in the history
  12. Tweaked Native AOT checks

    mtmk committed Oct 30, 2023
    Configuration menu
    Copy the full SHA
    7af8987 View commit details
    Browse the repository at this point in the history
  13. Update src/NATS.Client.Core/INatsSerializer.cs

    Co-authored-by: Jasper <jasper-d@users.noreply.github.com>
    mtmk and jasper-d authored Oct 30, 2023
    Configuration menu
    Copy the full SHA
    397d613 View commit details
    Browse the repository at this point in the history
  14. Update src/NATS.Client.Core/Internal/FixedArrayBufferWriter.cs

    Co-authored-by: Jasper <jasper-d@users.noreply.github.com>
    mtmk and jasper-d authored Oct 30, 2023
    Configuration menu
    Copy the full SHA
    39b3ce3 View commit details
    Browse the repository at this point in the history
  15. Update src/NATS.Client.Core/NatsBufferWriter.cs

    Co-authored-by: Jasper <jasper-d@users.noreply.github.com>
    mtmk and jasper-d authored Oct 30, 2023
    Configuration menu
    Copy the full SHA
    292e31f View commit details
    Browse the repository at this point in the history

Commits on Oct 31, 2023

  1. Fixed build

    mtmk committed Oct 31, 2023
    Configuration menu
    Copy the full SHA
    27beaf0 View commit details
    Browse the repository at this point in the history
  2. Removed unused buffer interface

    Also removed method inlining on getters (based on Jasper's advice:
    Presumably JIT should always inline simple field accesses and the
    other getters look like they are likely inlined without
    AggressiveInlining when on a hot path.)
    
    Thank you @jasper-d
    mtmk committed Oct 31, 2023
    Configuration menu
    Copy the full SHA
    3625e2f View commit details
    Browse the repository at this point in the history
  3. Remove next serializer from the interface

    Note that chaining serializers is implemented by convention and doesn't need
    to be enforced by the INatsSerializer interface since the next serializer
    would not be exposed to external users of the interface.
    mtmk committed Oct 31, 2023
    Configuration menu
    Copy the full SHA
    de4a3d7 View commit details
    Browse the repository at this point in the history
  4. All primitives serialization implemented

    All primitives supported by Utf8Parser and Utf8Formatter
    are implemented.
    mtmk committed Oct 31, 2023
    Configuration menu
    Copy the full SHA
    54db6af View commit details
    Browse the repository at this point in the history
  5. JSON serializer for non AOT

    mtmk committed Oct 31, 2023
    Configuration menu
    Copy the full SHA
    efbae94 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    9d720ef View commit details
    Browse the repository at this point in the history