Hexa.NET.Utilities
2.0.1
dotnet add package Hexa.NET.Utilities --version 2.0.1
NuGet\Install-Package Hexa.NET.Utilities -Version 2.0.1
<PackageReference Include="Hexa.NET.Utilities" Version="2.0.1" />
paket add Hexa.NET.Utilities --version 2.0.1
#r "nuget: Hexa.NET.Utilities, 2.0.1"
// Install Hexa.NET.Utilities as a Cake Addin #addin nuget:?package=Hexa.NET.Utilities&version=2.0.1 // Install Hexa.NET.Utilities as a Cake Tool #tool nuget:?package=Hexa.NET.Utilities&version=2.0.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:
Array
(comming soon)List
(UnsafeList)Map
(UnsafeDictionary)Set
(comming soon)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 (2)
Showing the top 2 NuGet packages that depend on Hexa.NET.Utilities:
Package | Downloads |
---|---|
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.