DropBear.Codex.Serialization 2024.4.14

dotnet add package DropBear.Codex.Serialization --version 2024.4.14
NuGet\Install-Package DropBear.Codex.Serialization -Version 2024.4.14
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.4.14" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add DropBear.Codex.Serialization --version 2024.4.14
#r "nuget: DropBear.Codex.Serialization, 2024.4.14"
#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.4.14

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

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

DropBear.Codex.Files is a versatile .NET library designed for efficient file management, offering seamless integration with advanced features such as delta updates for optimized storage and bandwidth usage. Tailored for applications requiring robust file operations, it provides a foundation for both local and cloud storage scenarios, ensuring high performance and scalability. (Advanced features available when paired with DropBear.Codex.DeltaBlobStorage package.)

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2024.4.14 129 4/23/2024
2024.4.13 95 4/23/2024
2024.4.12 79 4/23/2024
2024.4.10 84 4/23/2024
2024.4.9 78 4/22/2024
2024.4.8 82 4/22/2024
2024.4.7 74 4/22/2024
2024.4.6 94 4/20/2024
2024.4.5 76 4/20/2024
2024.4.4 76 4/20/2024
2024.4.3 77 4/19/2024
2024.3.15 98 4/1/2024
2024.3.13 71 3/30/2024
2024.3.12 74 3/30/2024
2024.3.11 72 3/30/2024
2024.3.9 71 3/30/2024
2024.3.8 68 3/30/2024
2024.3.5 138 3/29/2024
2024.3.4 83 3/28/2024
2024.3.3 96 3/21/2024
2024.3.2 80 3/16/2024
2024.3.1 100 3/11/2024
2024.2.11 93 2/28/2024
2024.2.9 98 2/26/2024
2024.2.8 101 2/25/2024