Releases: Cysharp/MagicOnion
Ver.4.0.1
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 onGrpc.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 forMagicOnion.Server
andMagicOnion.Client
MagicOnion.Client
: MagicOnion client library for .NET Standard 2.0/2.1MagicOnion.Client.Unity
: MagicOnion client library for Unity 2018 or later (The codes are shared withMagicOnion.Client
)MagicOnion.Server
: MagicOnion server library for ASP.NET Core 3.1MagicOnion.Server.HttpGateway
: Swagger extension for MagicOnion.ServerMagicOnion.Server.Redis
: Redis extension for MagicOnion.ServerMagicOnion.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
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 onGrpc.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 forMagicOnion.Server
andMagicOnion.Client
MagicOnion.Client
: MagicOnion client library for .NET Standard 2.0/2.1MagicOnion.Client.Unity
: MagicOnion client library for Unity 2018 or later (The codes are shared withMagicOnion.Client
)MagicOnion.Server
: MagicOnion server library for ASP.NET Core 3.1MagicOnion.Server.HttpGateway
: Swagger extension for MagicOnion.ServerMagicOnion.Server.Redis
: Redis extension for MagicOnion.ServerMagicOnion.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
Renewd MagicOnion.OpenTelemery package
3.0.11:
3.0.10
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
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
fromMagicOnion
in Unity project.- The soruce code structures are same as solution/projects for .NET (
MagicOnion.sln
).
- The soruce code structures are same as solution/projects for .NET (
- Restore and separate MagicOnion extensions for Unity.
UnityDebugLogger
andChannelExtensions
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:
- Fixed does not work SwaggerMiddleware on .NET Core 3.0, thanks @ktanakaj
- Fixed does not work broadcast by RedisGroup
- Fixed
UnsafeDirectBlitResolver
does not exists in Unity - Improved,
moc
uses ConsoleAppFramework https://github.com/Cysharp/ConsoleAppFramework/