Hexa.NET.Utilities 2.1.1

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

// Install Hexa.NET.Utilities as a Cake Tool
#tool nuget:?package=Hexa.NET.Utilities&version=2.1.1                

HexaEngine Utilities Library

The Utilities library for HexaEngine provides a set of essential tools and utilities that enhance the functionality and performance of your applications. It includes robust data structures, memory management utilities, thread-safe components, and more. The library is tailored to HexaEngine, but can be still used in other projects, that require low GC Pressure.

Features

Data Structures

  • Standard-like Strings:
    • StdWString (UTF-16)
    • StdString (UTF-8)
  • Standard-like Containers:
    • List (UnsafeList)
    • Map (UnsafeDictionary)
    • Set (UnsafeHashSet)
    • Queue (UnsafeQueue)
    • Stack (UnsafeStack)

Memory Management

  • Custom Allocation Callbacks: Define your own memory allocation strategies.
  • Pointer Wrapper Types: Utilize with generics for safer and more efficient pointer operations.
  • Utility Functions:
    • Memory allocation, freeing, copying, and moving
    • String operations
    • Memory setting (e.g., Memset)
    • Sorting (e.g., QSort)

Thread Safety

  • Thread-Safe Pools:
    • Object pools
    • List pools

Getting Started

To get started with the HexaEngine Utilities library, follow these steps:

  1. Install the NuGet package:

    dotnet add package Hexa.NET.Utilities
    
  2. Include the library in your project:

    using Hexa.NET.Utilities;
    
  3. Initialize and utilize data structures:

    var myString = new StdString("Hello, HexaEngine!");
    var myList = new UnsafeList<int> { 1, 2 };
    
  4. Leverage memory management utilities:

    int* memory = Utils.AllocT<int>(1);
    Utils.Free(memory);
    

    or

     global using static Hexa.NET.Utilities.Utils;
    
     int* memory = AllocT<int>(1);
     Free(memory);
    
  5. Use thread-safe components for concurrent operations:

    var pool = new ObjectPool<MyObject>();
    var obj = pool.Rent();
    pool.Return(obj);
    

Contributions

Contributions are welcome! If you have ideas for new features or improvements, feel free to submit a pull request or open an issue.

License

This project is licensed under the MIT License. See the LICENSE file for more details.

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 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. 
.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.

NuGet packages (4)

Showing the top 4 NuGet packages that depend on Hexa.NET.Utilities:

Package Downloads
Hexa.NET.ImGui.Widgets

Hexa.NET.ImGui.Widgets is a comprehensive library of custom widgets for the ImGui graphical user interface library. This package includes a variety of pre-built widgets that enhance the functionality and usability of ImGui in your .NET applications. Each widget is designed to be easy to integrate, with consistent styling and behavior. This library is an extension of the Hexa.NET.ImGui wrapper, providing additional UI components for a seamless user experience.

Hexa.NET.KittyUI

A Cross-Platform UI-Framework build upon ImGui, simplifying ImGui management in C#.

Hexa.NET.DebugDraw

This library is a simple 3D debug drawing library for the HexaEngine in Immediate-mode

Hexa.NET.Logging

The logging library for HexaEngine.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.2.1 162 12/8/2024
2.2.0 110 12/8/2024
2.1.14 282 11/14/2024
2.1.13 92 11/14/2024
2.1.12 91 11/13/2024
2.1.11 89 11/13/2024
2.1.10 171 11/6/2024
2.1.9 88 11/5/2024
2.1.8 298 10/23/2024
2.1.7 83 10/23/2024
2.1.6 281 8/30/2024
2.1.5 238 8/13/2024
2.1.4 225 8/11/2024
2.1.3 121 8/11/2024
2.1.2 148 8/10/2024
2.1.1 260 8/7/2024
2.1.0 98 8/7/2024
2.0.1 247 7/27/2024
2.0.0 116 7/25/2024
1.0.0 81 7/25/2024