diff --git a/MareAPI b/MareAPI
index f604e6d..15d1be0 160000
--- a/MareAPI
+++ b/MareAPI
@@ -1 +1 @@
-Subproject commit f604e6d27ebf760dd44feb53a11b8c04e91edc67
+Subproject commit 15d1be05fa02ab22dbf75cdc7477b432f0ecaa71
diff --git a/MareSynchronosServer/MareSynchronosServer/MareSynchronosServer.csproj b/MareSynchronosServer/MareSynchronosServer/MareSynchronosServer.csproj
index b6614fa..18eec02 100644
--- a/MareSynchronosServer/MareSynchronosServer/MareSynchronosServer.csproj
+++ b/MareSynchronosServer/MareSynchronosServer/MareSynchronosServer.csproj
@@ -35,6 +35,7 @@
+
diff --git a/MareSynchronosServer/MareSynchronosServer/Startup.cs b/MareSynchronosServer/MareSynchronosServer/Startup.cs
index 814d01b..cf020f4 100644
--- a/MareSynchronosServer/MareSynchronosServer/Startup.cs
+++ b/MareSynchronosServer/MareSynchronosServer/Startup.cs
@@ -24,6 +24,8 @@ using StackExchange.Redis.Extensions.Core.Configuration;
using System.Net;
using StackExchange.Redis.Extensions.System.Text.Json;
using MareSynchronos.API.SignalR;
+using MessagePack;
+using MessagePack.Resolvers;
namespace MareSynchronosServer;
@@ -102,6 +104,23 @@ public class Startup
hubOptions.StreamBufferCapacity = 200;
hubOptions.AddFilter();
+ }).AddMessagePackProtocol(opt =>
+ {
+ var resolver = CompositeResolver.Create(StandardResolverAllowPrivate.Instance,
+ BuiltinResolver.Instance,
+ AttributeFormatterResolver.Instance,
+ // replace enum resolver
+ DynamicEnumAsStringResolver.Instance,
+ DynamicGenericResolver.Instance,
+ DynamicUnionResolver.Instance,
+ DynamicObjectResolver.Instance,
+ PrimitiveObjectResolver.Instance,
+ // final fallback(last priority)
+ StandardResolver.Instance);
+
+ opt.SerializerOptions = MessagePackSerializerOptions.Standard
+ .WithCompression(MessagePackCompression.Lz4Block)
+ .WithResolver(resolver);
});
// configure redis for SignalR
diff --git a/MareSynchronosServer/MareSynchronosStaticFilesServer/MareSynchronosStaticFilesServer.csproj b/MareSynchronosServer/MareSynchronosStaticFilesServer/MareSynchronosStaticFilesServer.csproj
index 8dc3f0d..0466482 100644
--- a/MareSynchronosServer/MareSynchronosStaticFilesServer/MareSynchronosStaticFilesServer.csproj
+++ b/MareSynchronosServer/MareSynchronosStaticFilesServer/MareSynchronosStaticFilesServer.csproj
@@ -25,6 +25,7 @@
runtime; build; native; contentfiles; analyzers; buildtransitive
+
diff --git a/MareSynchronosServer/MareSynchronosStaticFilesServer/Startup.cs b/MareSynchronosServer/MareSynchronosStaticFilesServer/Startup.cs
index 359dd92..c471caf 100644
--- a/MareSynchronosServer/MareSynchronosStaticFilesServer/Startup.cs
+++ b/MareSynchronosServer/MareSynchronosStaticFilesServer/Startup.cs
@@ -8,6 +8,8 @@ using MareSynchronosShared.Services;
using MareSynchronosShared.Utils;
using MareSynchronosStaticFilesServer.Services;
using MareSynchronosStaticFilesServer.Utils;
+using MessagePack;
+using MessagePack.Resolvers;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Server.Kestrel.Core;
@@ -172,6 +174,23 @@ public class Startup
hubOptions.EnableDetailedErrors = true;
hubOptions.MaximumParallelInvocationsPerClient = 10;
hubOptions.StreamBufferCapacity = 200;
+ }).AddMessagePackProtocol(opt =>
+ {
+ var resolver = CompositeResolver.Create(StandardResolverAllowPrivate.Instance,
+ BuiltinResolver.Instance,
+ AttributeFormatterResolver.Instance,
+ // replace enum resolver
+ DynamicEnumAsStringResolver.Instance,
+ DynamicGenericResolver.Instance,
+ DynamicUnionResolver.Instance,
+ DynamicObjectResolver.Instance,
+ PrimitiveObjectResolver.Instance,
+ // final fallback(last priority)
+ StandardResolver.Instance);
+
+ opt.SerializerOptions = MessagePackSerializerOptions.Standard
+ .WithCompression(MessagePackCompression.Lz4Block)
+ .WithResolver(resolver);
});
// configure redis for SignalR