https://github.com/depra-inc/serialization
A library with an abstract implementation of the serialization interface, basic serializer types, and support for integrations and extensions
https://github.com/depra-inc/serialization
binary deserialization json netstandard21 newtonsoft-json serialization system-text-json xml
Last synced: 9 days ago
JSON representation
A library with an abstract implementation of the serialization interface, basic serializer types, and support for integrations and extensions
- Host: GitHub
- URL: https://github.com/depra-inc/serialization
- Owner: Depra-Inc
- License: apache-2.0
- Created: 2022-09-22T15:21:10.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2025-01-02T04:49:25.000Z (9 months ago)
- Last Synced: 2025-09-25T11:59:43.318Z (10 days ago)
- Topics: binary, deserialization, json, netstandard21, newtonsoft-json, serialization, system-text-json, xml
- Language: C#
- Homepage:
- Size: 230 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Docs/README.RU.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Depra.Serialization
Оглавление
- [Введение](#-введение)
- [Особенности](#-особенности)
- [Возможности](#-возможности)
- [Установка](#-установка)
- [Содержание](#-содержание)
- [Примеры использования](#-примеры-использования)
- [Расширения](#-расширения)
- [Сотрудничество](#-сотрудничество)
- [Поддержка](#-поддержка)
- [Лицензия](#-лицензия)## 🧾 Введение
`Depra.Serialization` - это библиотека, которая предоставляет интерфейсы для абстракции
от способов сериализации и десериализации данных.### 💡 Особенности:
- **Стандартизация**: Единое API для всех форматов сериализации/десериализации.
- **Расширяемость**: Гибкая архитектура для расширения функциональности по вашим потребностям.
- **Тестирование**: Покрытие кода тестами для обеспечения стабильности и надежности.
- **Документация**: Подробная документация для удобства использования.
- **Лицензия**: Распространяется под лицензией **Apache-2.0**.
- **Бесплатно**: Используйте эту библиотеку в любых проектах, включая коммерческие.
- **Безопасность**: Библиотека не содержит кода, который может нанести вред вашему проекту.
- **Поддержка**: Поддержка библиотеки будет продолжаться в течение неопределенного периода времени.
- **Независимость**: Библиотека не зависит от других библиотек и пакетов.
- **Легковесность**: Библиотека не содержит ненужного кода и зависимостей.
- **Простота**: Библиотека имеет простую и понятную архитектуру.
- **Удобство отладки**: Библиотека бросает понятные исключения и сообщения об ошибках в режиме отладки (`DEBUG`).### 🦾 Возможности:
- Поддержка сериализации и десериализации в следующих форматах:
- [x] `Binary`
- [x] `JSON`
- [x] `XML`
- [ ] `YAML`
- [ ] `CSV`## 📥 Установка
### 📦 Через **NuGet**:
1. Откройте окно **NuGet Package Manager**.
2. Выберите вкладку **Packages**.
3. Введите в поиске **Depra.Serialization**.
4. Выберите пакет **Depra.Serialization**.
5. Выберите проект, в который вы хотите установить пакет.
6. Нажмите **Install**.### ⚙️ Ручная:
1. Загрузите ***.dll*** файл из раздела [Releases](https://github.com/Depra-Inc/Serialization/releases)
или скачайте исходный код.
2. Импортируйте в свой проект.## 📖 Содержание
**Ключевые концепции**, используемые в этой библиотеке, описаны в следующих интерфейсах:
- `IRawSerializer` - интерфейс для сериализации и десериализации данных в формате `byte[]`.
- `ITextSerializer` - интерфейс для сериализации и десериализации данных в формате `string`.
- `IStreamSerializer` - интерфейс для сериализации и десериализации данных в формате `Stream`.
- `IMemorySerializer` - интерфейс для сериализации и десериализации данных в формате `ReadOnlyMemory`.## 📋 Примеры использования
1. Создайте экземпляр сериализатора, который поддерживает формат, который вы хотите использовать.
Можете зарегистрировать его в **DI контейнере**, если вы используете его в своем проекте.```csharp
IRawSerializer serializer = new BinarySerializer();
```2. Используйте методы сериализатора для сериализации и десериализации данных.
```csharp
var serialized = serializer.Serialize(data);
var deserialized = await serializer.DeserializeAsync(serialized, typeof(MyDataType));
```## ➕ Расширения
- `Depra.Json.Newtonsoft` - добавляет поддержку сериализации и десериализации в формате `JSON` с помощью
библиотеки `Newtonsoft.Json`.
- `Depra.Json.Microsoft` - добавляет поддержку сериализации и десериализации в формате `JSON` с помощью
библиотеки `System.Text.Json`.## 🤝 Сотрудничество
Я рад приветствовать запросы на добавление новых функций и сообщения об ошибках в
разделе [issues](https://github.com/Depra-Inc/Serialization/issues) и также
принимать [pull requests](https://github.com/Depra-Inc/Serialization/pulls).## 🫂 Поддержка
Я независимый разработчик,
и большая часть разработки этого проекта выполняется в свободное время.
Если вы заинтересованы в сотрудничестве или найме меня для проекта,
ознакомьтесь с моим [портфолио](https://github.com/Depra-Inc)
и [свяжитесь со мной](mailto:g0dzZz1lla@yandex.ru)!## 🔐 Лицензия
Этот проект распространяется под лицензией
**[Apache-2.0](https://github.com/Depra-Inc/Serialization/blob/main/LICENSE.md)**Copyright (c) 2023 Николай Мельников
[n.melnikov@depra.org](mailto:n.melnikov@depra.org)