Skip to content

Releases: Cysharp/MagicOnion

Ver.4.0.1

12 Nov 10:01
7c5aa59
Compare
Choose a tag to compare

The Beginning of the C-Core removal journey

We moved the gRPC library used by MagicOnion from the C-core to the C# implementation.
MagicOnion server is built on ASP.NET Core and Kestrel for high performance in combination with .NET 5.0.

  • MagicOnion.Server is now built on ASP.NET Core gRPC services.
    • gRPC C-core dependency has been removed completely in the server.
  • MagicOnion.Client for .NET Standard 2.1 is now depends on Grpc.Net.Client.
    • gRPC C-core is no longer needed on .NET Standard 2.1 (.NET Core 3.x, Xamarin, ...) platform.
    • The client library still supports .NET Standard 2.0 platforms (e.g. .NET Framework 4.6.1, .NET Core 2.x and Unity).

Improvements

  • Adopt .NET 5.0 (#366)
  • Enable nullable reference type annotations (MagicOnion.Server)

Breaking changes

MagicOnion.Hosting and MagicOnion-standalone server are now dropped

Use MagicOnion.Server and ASP.NET Core instead of that.
In other words, MagicOnion server doesn't support non-.NET Core platform (e.g. .NET Framework, Unity, Mono ...).

Reorganize project structure

The server/client monolithic package has been decoupled.

  • MagicOnion: Meta package for MagicOnion.Server and MagicOnion.Client
  • MagicOnion.Client: MagicOnion client library for .NET Standard 2.0/2.1
  • MagicOnion.Client.Unity: MagicOnion client library for Unity 2018 or later (The codes are shared with MagicOnion.Client)
  • MagicOnion.Server: MagicOnion server library for ASP.NET Core 3.1
  • MagicOnion.Server.HttpGateway: Swagger extension for MagicOnion.Server
  • MagicOnion.Server.Redis: Redis extension for MagicOnion.Server
  • MagicOnion.Server.OpenTelemetry: OpenTelemetry extension for MagicOnion.Server (experimental)
  • MagicOnion.Server.Authentication: Authentication extension for MagicOnion.Server (preview)
  • MagicOnion.Shared: Shared internal utilities for the client and server.

Use IMagicOnionClientLogger instead of Grpc.Core.Logging.ILogger

Grpc.Core.Logging.ILogger API is part of C-core library.

Remove DefaultGroupRepositoryFactory

If you are using MagicOnion.Redis, use UseRedisGroupRepository(Action<RedisGroupOptions> configure, bool registerAsDefault = false) instead.

services.AddMagicOnion()
    .UseRedisGroupRepository(options =>
    {
        options.ConnectionMultiplexer = StackExchange.Redis.ConnectionMultiplexer.Connect("localhost:6379");
    });
// If you want to use Redis backplane by default, you can specify `registerAsDefault: true`.
services.AddMagicOnion()
    .UseRedisGroupRepository(options => { ... }, registerAsDefault: true);

Fixes from 4.0.0

  • Move namespace Microsoft.AspNetCore.Routing -> Microsoft.AspNetCore.Builder (#370)

Ver.4.0.0

12 Nov 09:21
f1aa90a
Compare
Choose a tag to compare

The Beginning of the C-Core removal journey

We moved the gRPC library used by MagicOnion from the C-core to the C# implementation.
MagicOnion server is built on ASP.NET Core and Kestrel for high performance in combination with .NET 5.0.

  • MagicOnion.Server is now built on ASP.NET Core gRPC services.
    • gRPC C-core dependency has been removed completely in the server.
  • MagicOnion.Client for .NET Standard 2.1 is now depends on Grpc.Net.Client.
    • gRPC C-core is no longer needed on .NET Standard 2.1 (.NET Core 3.x, Xamarin, ...) platform.

Improvements

  • Adopt .NET 5.0 (#366)
  • Enable nullable reference type annotations (MagicOnion.Server)

Breaking changes

MagicOnion.Hosting and MagicOnion-standalone server are now dropped

Use MagicOnion.Server and ASP.NET Core instead of that.
In other words, MagicOnion server doesn't support non-.NET Core platform (e.g. .NET Framework, Unity, Mono ...).

Reorganize project structure

The server/client monolithic package has been decoupled.

  • MagicOnion: Meta package for MagicOnion.Server and MagicOnion.Client
  • MagicOnion.Client: MagicOnion client library for .NET Standard 2.0/2.1
  • MagicOnion.Client.Unity: MagicOnion client library for Unity 2018 or later (The codes are shared with MagicOnion.Client)
  • MagicOnion.Server: MagicOnion server library for ASP.NET Core 3.1
  • MagicOnion.Server.HttpGateway: Swagger extension for MagicOnion.Server
  • MagicOnion.Server.Redis: Redis extension for MagicOnion.Server
  • MagicOnion.Server.OpenTelemetry: OpenTelemetry extension for MagicOnion.Server (experimental)
  • MagicOnion.Server.Authentication: Authentication extension for MagicOnion.Server (preview)
  • MagicOnion.Shared: Shared internal utilities for the client and server.

Use IMagicOnionClientLogger instead of Grpc.Core.Logging.ILogger

Grpc.Core.Logging.ILogger API is part of C-core library.

Remove DefaultGroupRepositoryFactory

If you are using MagicOnion.Redis, use UseRedisGroupRepository(Action<RedisGroupOptions> configure, bool registerAsDefault = false) instead.

services.AddMagicOnion()
    .UseRedisGroupRepository(options =>
    {
        options.ConnectionMultiplexer = StackExchange.Redis.ConnectionMultiplexer.Connect("localhost:6379");
    });
// If you want to use Redis backplane by default, you can specify `registerAsDefault: true`.
services.AddMagicOnion()
    .UseRedisGroupRepository(options => { ... }, registerAsDefault: true);

Ver.3.0.12

27 May 10:14
Compare
Choose a tag to compare

Renewd MagicOnion.OpenTelemery package

3.0.11:

10 Mar 07:14
Compare
Choose a tag to compare

Changes

Add RedisGroupOptions #287
Fix a critical memory out-of-bounds accessing bug of UnsafeDirectBlitResolver #286
Update roslyn version of code generator

Fixes

Impemenets RedisGroup.GetMemberCountAsync

3.0.10

28 Feb 03:25
f790a2a
Compare
Choose a tag to compare

Changes

Improvements and fixes

  • #279 Bump MessagePack from 2.1.80 to 2.1.90

New features

#274 MagicOnion.Server.Authentication (Preview)

MagicOnion.Server.Authentication package provides a simple authentication mechanism on MagicOnion. Currently, the package is marked as preview.

$ dotnet add package -v 3.0.10-preview MagicOnion.Server.Authentication

MagicOnion.Server.Authentication provides two API surfaces.

  • Fundamental attributes (e.g. AuthorizeAttribute, AllowAnonymousAttribute)
  • JWT-based authentication implementation framework

To use the framework, 3rd-party developers can implement JWT-based authentication with minimal effort. The developers just implement below interfaces.

  • MagicOnion.Server.Authentication.Jwt.IJwtAuthenticationProvider
  • System.Security.Principal.IIdentity
  • Application-specific JWT payload

Sample code: https://github.com/Cysharp/MagicOnion/tree/master/samples/JwtAuthentication

3.0.9

17 Feb 06:52
6100595
Compare
Choose a tag to compare

Changes

Improvements and fixes

#269 Add NuGet package icon

#254 Add AssemblyDefinition for Unity package and organize MagicOnion, MagicOnion.Abstractions

⚠NOTE: If you installed the previous version in your project, delete existing MagicOnion package before upgrading.

  • Separate MagicOnion.Abstractions from MagicOnion in Unity project.
    • The soruce code structures are same as solution/projects for .NET (MagicOnion.sln).
  • Restore and separate MagicOnion extensions for Unity.
    • UnityDebugLogger and ChannelExtensions are removed at v3.0. But we did not intented to that.
    • Now, the classes are placed into MagicOnion.Unity directory.

#258 Bump MessagePack from 2.0.323 to 2.1.80

3.0.8:

09 Jan 10:21
Compare
Choose a tag to compare

3.0.7:

09 Jan 10:07
Compare
Choose a tag to compare

abandoned.

3.0.6:

07 Jan 03:50
Compare
Choose a tag to compare

This release only affects MSBuild.Tasks.
fixed can not use UnuseUnityAttr attribute.

Ver 3.0.5

06 Jan 10:55
Compare
Choose a tag to compare

Same as (fixed) 3.0.4.
This release only affects MSBuild.Tasks.
(may) fixed build error on dotnet build when use with MessagePack.MSBuild.Tasks.