{"id":19720826,"url":"https://github.com/hexaengine/hexa.net.utilities","last_synced_at":"2026-02-28T23:32:18.731Z","repository":{"id":250157857,"uuid":"833692310","full_name":"HexaEngine/Hexa.NET.Utilities","owner":"HexaEngine","description":"A utility library for working with unmanaged memory and more.","archived":false,"fork":false,"pushed_at":"2025-11-15T20:41:57.000Z","size":346,"stargazers_count":7,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-11-15T21:04:10.972Z","etag":null,"topics":["csharp","native","unmanaged","unsafe","utilities"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HexaEngine.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-07-25T14:51:58.000Z","updated_at":"2025-11-15T20:42:00.000Z","dependencies_parsed_at":"2024-07-25T15:09:08.599Z","dependency_job_id":"c55d7d5a-308b-47d8-a153-b411e5790bc0","html_url":"https://github.com/HexaEngine/Hexa.NET.Utilities","commit_stats":null,"previous_names":["hexaengine/hexa.net.utilities"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/HexaEngine/Hexa.NET.Utilities","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HexaEngine%2FHexa.NET.Utilities","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HexaEngine%2FHexa.NET.Utilities/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HexaEngine%2FHexa.NET.Utilities/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HexaEngine%2FHexa.NET.Utilities/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HexaEngine","download_url":"https://codeload.github.com/HexaEngine/Hexa.NET.Utilities/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HexaEngine%2FHexa.NET.Utilities/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29954968,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-28T22:53:01.873Z","status":"ssl_error","status_checked_at":"2026-02-28T22:52:50.699Z","response_time":90,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csharp","native","unmanaged","unsafe","utilities"],"created_at":"2024-11-11T23:12:35.111Z","updated_at":"2026-02-28T23:32:18.713Z","avatar_url":"https://github.com/HexaEngine.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hexa.NET.Utilities\nThis repository provides a collection of high-performance utilities designed to address common programming needs while maintaining low GC pressure and maximizing performance.\n\n## Features\n\n### UTF-8 String formatting\n- **Utf8Formatter**\n  - A low level implementation for maximum performance. \n  - **Number primitives** incl. short ushort int uint long ulong float double and culture specifics\n  - **Hexadecimal formatting**\n  - **Data size formatting** eg. 1024 =\u003e 1 KiB.\n  - **DateTimes** full format string support and culture specifics\n  - **TimeSpans** full format string support and culture specifics\n- **`StrBuilder`**:\n  - a lightweight string builder allowing use of stackalloc for temporary strings to prevent GC-Pressure.\n\n### IO Utilities\n- **Faster File System Enumeration with prefetching metadata**\n\n### Data Structures\n- **Standard-like Strings**:\n  - `StdWString` (UTF-16)\n  - `StdString` (UTF-8)\n- **Standard-like Containers**:\n  - `List` (UnsafeList)\n  - `Map` (UnsafeDictionary)\n  - `Set` (UnsafeHashSet)\n  - `Queue` (UnsafeQueue)\n  - `Stack` (UnsafeStack)\n\n### Memory Management\n- **Custom Allocation Callbacks**: Define your own memory allocation strategies.\n- **Pointer Wrapper Types**: Utilize with generics for safer and more efficient pointer operations.\n- **Utility Functions**:\n  - Memory allocation, freeing, copying, and moving\n  - String operations\n  - Memory setting (e.g., `Memset`)\n  - Sorting (e.g., `QSort`)\n\n### Thread Safety\n- **Thread-Safe Pools**:\n  - Object pools\n  - List pools\n\n## Getting Started\n\nTo get started with the HexaEngine Utilities library, follow these steps:\n\n1. **Install the NuGet package**:\n    ```bash\n    dotnet add package Hexa.NET.Utilities\n    ```\n\n2. **Include the library in your project**:\n    ```csharp\n    using Hexa.NET.Utilities;\n    ```\n\n3. **Initialize and utilize data structures**:\n    ```csharp\n    var myString = new StdString(\"Hello, HexaEngine!\");\n    var myList = new UnsafeList\u003cint\u003e { 1, 2 };\n    ```\n\n4. **Leverage memory management utilities**:\n    ```csharp\n    int* memory = Utils.AllocT\u003cint\u003e(1);\n    Utils.Free(memory);\n    ```\n    or\n   ```csharp\n    global using static Hexa.NET.Utilities.Utils;\n  \n    int* memory = AllocT\u003cint\u003e(1);\n    Free(memory);\n   ```\n\n6. **Use thread-safe components for concurrent operations**:\n    ```csharp\n    var pool = new ObjectPool\u003cMyObject\u003e();\n    var obj = pool.Rent();\n    pool.Return(obj);\n    ```\n\n## Contributions\n\nContributions are welcome! If you have ideas for new features or improvements, feel free to submit a pull request or open an issue.\n\n## License\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for more details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhexaengine%2Fhexa.net.utilities","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhexaengine%2Fhexa.net.utilities","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhexaengine%2Fhexa.net.utilities/lists"}