MemoryPack — это высокопроизводительный сериализатор. который ориентирован на максимальную скорость и минимальные накладные расходы
Особенности инструмента
— MemoryPack минимизирует накладные расходы, копируя данные напрямую из памяти C#, без дополнительного кодирования.
— Поддерживает современные API:
IBufferWriter<byte> и ReadOnlySequence<byte>.— Полностью совместим с Unity, включая поддержку сериализации и десериализации объектов в игровых проектах.
— Поддерживает сериализацию интерфейсов и абстрактных классов с помощью атрибута, а также обеспечивает устойчивость к изменениям версий данных.
Согласно данным из официального репозитория, MemoryPack значительно опережает другие популярные сериализаторы по производительности: он работает до 10 раз быстрее, чем
System.Text.Json и protobuf-net при сериализации стандартных объектов, при работе с массивами структур до 50–200 раз.Пример:
[MemoryPackable]
public partial class WeatherForecast
{
public DateTime Date { get; set; }
public int TemperatureC { get; set; }
public string? Summary { get; set; }
}
// Сериализация
byte[] bytes = MemoryPackSerializer.Serialize(forecast);
// Десериализация
WeatherForecast? result = MemoryPackSerializer.Deserialize<WeatherForecast>(bytes);
Его использование особенно оправдано в игровых проектах, высоконагруженных API и системах, где критична скорость обработки данных.
📎 Репозиторий проекта
🐸Библиотека шарписта #буст
