Hexa.NET.Utilities
2.1.2
See the version list below for details.
dotnet add package Hexa.NET.Utilities --version 2.1.2
NuGet\Install-Package Hexa.NET.Utilities -Version 2.1.2
<PackageReference Include="Hexa.NET.Utilities" Version="2.1.2" />
paket add Hexa.NET.Utilities --version 2.1.2
#r "nuget: Hexa.NET.Utilities, 2.1.2"
// Install Hexa.NET.Utilities as a Cake Addin #addin nuget:?package=Hexa.NET.Utilities&version=2.1.2 // Install Hexa.NET.Utilities as a Cake Tool #tool nuget:?package=Hexa.NET.Utilities&version=2.1.2
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:
Install the NuGet package:
dotnet add package Hexa.NET.Utilities
Include the library in your project:
using Hexa.NET.Utilities;
Initialize and utilize data structures:
var myString = new StdString("Hello, HexaEngine!"); var myList = new UnsafeList<int> { 1, 2 };
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);
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 | Versions 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. |
-
.NETStandard 2.1
- System.Memory (>= 4.5.5)
-
net8.0
- System.Memory (>= 4.5.5)
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.DebugDraw
This library is a simple 3D debug drawing library for the HexaEngine in Immediate-mode |
|
Hexa.NET.Logging
The logging library for HexaEngine. |
|
Hexa.NET.KittyUI
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.