Hexa.NET.Utilities
2.2.1
dotnet add package Hexa.NET.Utilities --version 2.2.1
NuGet\Install-Package Hexa.NET.Utilities -Version 2.2.1
<PackageReference Include="Hexa.NET.Utilities" Version="2.2.1" />
paket add Hexa.NET.Utilities --version 2.2.1
#r "nuget: Hexa.NET.Utilities, 2.2.1"
// Install Hexa.NET.Utilities as a Cake Addin #addin nuget:?package=Hexa.NET.Utilities&version=2.2.1 // Install Hexa.NET.Utilities as a Cake Tool #tool nuget:?package=Hexa.NET.Utilities&version=2.2.1
Hexa.NET.Utilities
This repository provides a collection of high-performance utilities designed to address common programming needs while maintaining low GC pressure and maximizing performance.
Features
UTF-8 String formatting
- Utf8Formatter
- A low level implementation for maximum performance.
- Number primitives incl. short ushort int uint long ulong float double and culture specifics
- Hexadecimal formatting
- Data size formatting eg. 1024 ⇒ 1 KiB.
- DateTimes full format string support and culture specifics
- TimeSpans full format string support and culture specifics
StrBuilder
:- a lightweight string builder allowing use of stackalloc for temporary strings to prevent GC-Pressure.
IO Utilities
- Faster File System Enumeration with prefetching metadata
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 is compatible. 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 is compatible. 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. net9.0 is compatible. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. 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.0
- System.Memory (>= 4.6.0)
-
.NETStandard 2.1
- System.Memory (>= 4.6.0)
-
net6.0
- No dependencies.
-
net7.0
- No dependencies.
-
net8.0
- No dependencies.
-
net9.0
- No dependencies.
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 | 250 | 12/8/2024 |
2.2.0 | 111 | 12/8/2024 |
2.1.14 | 294 | 11/14/2024 |
2.1.13 | 92 | 11/14/2024 |
2.1.12 | 91 | 11/13/2024 |
2.1.11 | 91 | 11/13/2024 |
2.1.10 | 182 | 11/6/2024 |
2.1.9 | 89 | 11/5/2024 |
2.1.8 | 300 | 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 | 231 | 8/11/2024 |
2.1.3 | 123 | 8/11/2024 |
2.1.2 | 148 | 8/10/2024 |
2.1.1 | 262 | 8/7/2024 |
2.1.0 | 98 | 8/7/2024 |
2.0.1 | 250 | 7/27/2024 |
2.0.0 | 116 | 7/25/2024 |
1.0.0 | 83 | 7/25/2024 |