DropBear.Codex.Serialization 2024.7.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package DropBear.Codex.Serialization --version 2024.7.1                
NuGet\Install-Package DropBear.Codex.Serialization -Version 2024.7.1                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="DropBear.Codex.Serialization" Version="2024.7.1" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add DropBear.Codex.Serialization --version 2024.7.1                
#r "nuget: DropBear.Codex.Serialization, 2024.7.1"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install DropBear.Codex.Serialization as a Cake Addin
#addin nuget:?package=DropBear.Codex.Serialization&version=2024.7.1

// Install DropBear.Codex.Serialization as a Cake Tool
#tool nuget:?package=DropBear.Codex.Serialization&version=2024.7.1                

DropBear.Codex.Serialization

Overview

DropBear.Codex.Serialization provides a robust and highly configurable serialization framework, supporting multiple serialization formats such as JSON and MessagePack. It integrates advanced features such as compression, encryption, and encoding to meet modern application needs for data handling and security.

Features

  • Flexible Serialization & Deserialization: Supports multiple formats including JSON and MessagePack.
  • Configurable Pipeline: Customize serialization processes with encryption, compression, and encoding through a fluent API.
  • Encryption Support: Integrates RSA and AES encryption to ensure data security during serialization.
  • Compression Options: Includes support for GZip and Deflate compression algorithms to optimize data size.
  • Encoding Techniques: Supports Base64 and Hexadecimal encoding to enhance data interoperability.
  • Stream Serialization: Facilitates serialization and deserialization directly from and to streams, improving performance for large data sets.

Getting Started

Setup

To utilize the serialization capabilities, you need to configure and build the serializer using the SerializationBuilder. Here's how you can set it up in your application:

var builder = new SerializationBuilder()
    .WithSerializer<JsonSerializer>() // Choose the serializer
    .WithCompression<GZipCompressionProvider>() // Specify compression
    .WithEncryption("path/to/publicKey", "path/to/privateKey") // Configure encryption
    .WithEncoding<Base64EncodingProvider>(); // Set encoding

var serializer = builder.Build();

Registration in Dependency Injection (DI) You can easily integrate the serialization builder into a DI container to use throughout your application:

services.AddSingleton<ISerializer>(_ => new SerializationBuilder()
.WithSerializer<JsonSerializer>()
.WithCompression<GZipCompressionProvider>()
.WithEncryption("path/to/publicKey", "path/to/privateKey")
.WithEncoding<Base64EncodingProvider>()
.Build());

Usage Use the serializer instance created by the SerializationBuilder to serialize and deserialize data:

var myObject = new MyDataClass();
var serializedData = await serializer.SerializeAsync(myObject);
var deserializedObject = await serializer.DeserializeAsync<MyDataClass>(serializedData);
This setup ensures that the data is serialized, compressed, encrypted, and encoded seamlessly.

Contributing

Contributions are welcome! Please fork the repository, make your changes, and submit a pull request. For major changes, please open an issue first to discuss what you would like to change.

License

This project is licensed under GNU Lesser General Public License.

Development Status

Note: This library is relatively new and under active development. While it is being developed with robustness and best practices in mind, it may still be evolving.

We encourage you to test thoroughly and contribute if possible before using this library in a production environment. The API and features may change as feedback is received and improvements are made. We appreciate your understanding and contributions to making this library better!

Please use the following link to report any issues or to contribute: GitHub Issues.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on DropBear.Codex.Serialization:

Package Downloads
DropBear.Codex.Files

Provides file management and storage capabilities for the DropBear.Codex ecosystem

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2024.11.5 93 11/12/2024
2024.9.44 106 9/20/2024
2024.9.43 130 9/16/2024
2024.9.42 110 9/16/2024
2024.9.32 111 9/13/2024
2024.9.25 119 9/11/2024
2024.9.1 114 9/8/2024
2024.8.54 115 9/6/2024
2024.8.36 111 9/2/2024
2024.7.1 83 7/24/2024
2024.4.14 177 4/23/2024
2024.4.13 130 4/23/2024
2024.4.12 115 4/23/2024
2024.4.10 114 4/23/2024
2024.4.9 106 4/22/2024
2024.4.8 116 4/22/2024
2024.4.7 104 4/22/2024
2024.4.6 126 4/20/2024
2024.4.5 110 4/20/2024
2024.4.4 91 4/20/2024
2024.4.3 110 4/19/2024
2024.3.15 125 4/1/2024
2024.3.13 86 3/30/2024
2024.3.12 103 3/30/2024
2024.3.11 102 3/30/2024
2024.3.9 116 3/30/2024
2024.3.8 96 3/30/2024
2024.3.5 187 3/29/2024
2024.3.4 112 3/28/2024
2024.3.3 125 3/21/2024
2024.3.2 107 3/16/2024
2024.3.1 129 3/11/2024
2024.2.11 124 2/28/2024
2024.2.9 127 2/26/2024
2024.2.8 130 2/25/2024