Mythosia 1.1.2

There is a newer version of this package available.
See the version list below for details.
dotnet add package Mythosia --version 1.1.2                
NuGet\Install-Package Mythosia -Version 1.1.2                
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="Mythosia" Version="1.1.2" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Mythosia --version 1.1.2                
#r "nuget: Mythosia, 1.1.2"                
#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 Mythosia as a Cake Addin
#addin nuget:?package=Mythosia&version=1.1.2

// Install Mythosia as a Cake Tool
#tool nuget:?package=Mythosia&version=1.1.2                

Mythosia

This project supports custom functions that are not directly provided by .NET as extension methods so that they can be conveniently used within the project. <br/> The extensions supported by this project include the following. <br/>

String

using Mythosia;

var data = "12345".ToDefaultArray(); // Equal with Encoding.Default.GetBytes("12345");
var data = "12345".ToASCIIArray(); // Equal with Encoding.ASCII.GetBytes("12345");
var data = "12345".ToUTF8Array(); // Equal with Encoding.ASCII.GetBytes("12345");
var data = "12345".ToUTF32Array(); // Equal with Encoding.ASCII.GetBytes("12345");
var data = "=".Repeat(10); // data is "=========="

Numeric (sbyte, byte, short, ushort, int, uint, float, double)

using Mythosia;

var result = 56.IsInRange(0, 100);  // result is true 
var result = 56.IsInRange(0, 30);   // result is false
var data = 56000000.ToSIPrefix();   // data is "56 M"
var data = 423.42031.HostToNetworkEndian();	// change endian (host to big)
var data = 234.52.ToByteArray();	// Equal with BitConverter.GetBytes(234.52);

Enumerable (included ConcurrentBag)

using Mythosia;

new List<byte> test = new List<byte>(){0xff, 0xab, 0x01, 0x00, 0xee};
var result = test.ToUnPrefixedHexString();			// result is "ff ab 01 00 ee"
var result = test.ToPrefixedHexString();			// result is "0xffab0100ee"
var result = test.ToEncodedString(Encoding.GetEncoding("ISO-8859-1"));		// convert string as "ISO-8859-1" format
var result = test.ToASCIIString();	// equal with Encoding.ASCII.GetString(test.ToArray(), 0, test.Count());
var result = test.IndexOf(new List(){ 0xab, 0x01 });	// return the index that subsequence is finded.
test.AddExceptNull(item);					// add item if item is not null

new List<byte> newItems = new List<bye>(){ 0x01, 0x02 };
test.AddRangeParallel(newItems);    // add items as parallel

Delegate

using Mythosia;

// If you have a function that success or fails according to condition as below.
bool WireConnect()
{
    // Check whether the wire is connected
    // If connected to wire return true else false.
}


// Here you may want to call the function to repeat to specified timeout.
// Then you can solute just by calling the function "Retry" as below. 
void Test()
{
    var func = WireConnect;             // you need c# 10.0
    bool result = func.Retry(30000);      // Call WireConnect function to repeat while a maximum of 30,000 ms (the 30s) or until success

    if(result) Console.WriteLine("Success");
    else Console.WriteLine("Failed");
}

Stream

using Mythosia;

[StructLayout(LayoutKind.Sequential, Pack = 1)]
public class TestMarshalClass
{
    public int a;
    public int b;
}

TestMarshalClass test = new();

var serializeData = test.SerializeUsingMarshal();   // Serialize
test.DeSerializeUsingMarshal(serializeData);    // Deserialize to test

Enum

using Mythosia;

public enum CarBrand
{
    [Description("Mercedes")] Benz = 0,
    [Description("Bayerische Motoren Werke AG")] BMW,
}

CarBrand test = CarBrand.Benz;
var value = test.ToDescription();   // value is "Mercedes"

int carBrand = 1;
var enum = carBrand.ToEnum<CarBrand>();   // enum is CarBrand.BMW
var enum = "Mercedes".GetEnumFromDescription<CarBrand>();   // enum is CarBrand.Benz

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  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. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETStandard 2.1

    • No dependencies.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on Mythosia:

Package Downloads
Mythosia.Integrity

From this version, you can use the polymorphism. Please see the GitHub readme file. support checksum8: 1. xor (using in NMEA format) 2. modulo-256 3. 2's complement support CRC8: 1. CRC8 2. CRC8 Maxim support CRC16: 1. CRC16 2. CRC16 (modbus) 3. CRC16 CCITT (xModem) 4. CRC16 DNP support CRC32 1. CRC32

Mythosia.Security.Cryptography

support symmetric algorithm 1. AES128 2. AES192 3. AES256 4. 3DES 5. DES 6. SEED support HashCode for IV (Integrity Verification) 1. SHA1 2. SHA256 3. SHA384 4. SHA512 5. MD2 6. MD4 7. MD5 refer to https://github.com/AJ-comp/Mythosia/tree/master/Mythosia.Security.Cryptography for detail.

Mythosia.Azure.Storage.Blobs

BlobServiceClient and Azure Key Vault Integration The BlobServiceClient is a part of the Azure SDK designed to interact with Azure Blob Storage. It provides methods for working with containers and blobs, such as uploading, downloading, deleting, and generating Shared Access Signatures (SAS). However, BlobServiceClient does not natively include integration with Azure Key Vault for secret management, such as storing or retrieving credentials or connection strings. Azure Key Vault, on the other hand, is a service that provides centralized secret management, enabling secure storage and access to sensitive information such as API keys, connection strings, and certificates. It allows secure access using Azure Managed Identity or Service Principal Authentication. While BlobServiceClient itself does not handle secrets or authentication via Azure Key Vault, you can integrate the two services by retrieving secrets (such as Blob Storage connection strings or SAS tokens) from Azure Key Vault and using them to initialize BlobServiceClient. Key Points: BlobServiceClient: Used to perform operations on Azure Blob Storage (upload, download, delete, etc.). Does not have native support for managing secrets or authentication via Azure Key Vault. Azure Key Vault: A service for managing and securing sensitive information like connection strings and credentials. Can store secrets required for securely accessing services like Azure Blob Storage. Integration: You can retrieve connection strings or SAS tokens from Azure Key Vault using Azure SDKs (e.g., SecretClient) and use them to instantiate BlobServiceClient. Example: // create BlobServiceClient with key vault information new ExtendBlobServiceClient("https://mythosia-key-vault.vault.azure.net/", "blob");

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.2.3 173 6/17/2024
1.2.2 1,066 10/16/2023
1.2.1 1,087 8/20/2023
1.2.0 1,428 8/9/2023
1.1.5 1,143 7/17/2023
1.1.4 1,148 7/3/2023
1.1.3 1,170 7/3/2023
1.1.2 1,037 6/28/2023
1.1.1 1,227 6/25/2023
1.1.0 1,104 6/23/2023
1.0.3 1,115 6/23/2023
1.0.2 1,083 6/21/2023
1.0.1 1,275 6/19/2023
1.0.0 1,168 6/18/2023