Skip to content

Releases: FurkanKirat/StructForge

v1.5.0 - Graphs, Dictionaries & Debugger Visualizers

Choose a tag to compare

@FurkanKirat FurkanKirat released this 18 Dec 18:07

This release brings back the highly requested SfDictionary, introduces the foundation for SfGraph, and massively improves the debugging experience with custom visualizers for all collections.

🚀 New Features

  • SfDictionary is Back!

    • Re-architected from scratch using open addressing.
    • Zero-Allocation: No garbage generation on lookups or insertions (when capacity allows).
    • Optimized for high-performance caching scenarios.
  • 🕸️ SfGraph (Core Structure)

    • Added SfGraph<T> implementation based on Adjacency Lists.
    • Supports AddVertex, AddEdge, GetNeighbors and standard graph traversals.
    • Note: Pathfinding algorithms (A*, BFS, DFS) are scheduled for the v1.6.0 update.
  • 🔍 Debugger Visualizers (Major DX Update)

    • Added DebuggerTypeProxy and DebuggerDisplay attributes to ALL collections.
    • You can now inspect the contents of SfBitArray, SfGraph, SfDictionary, and SfGrid directly in Visual Studio without expanding complex internal arrays.
    • SfBitArray3D now shows dimensions and active voxel counts clearly.
    • SfGraph displays vertices and edges in a clean, readable format.

✨ Improvements

  • SfEnumSet: Debug views now show the string names of enum flags instead of just raw integers.
  • SfList: Optimized RemoveAtSwap logic for better inlining.
  • General: Added safeguards against uninitialized structs in debug views to prevent IDE crashes.

⚠️ Notes

  • SfGraph: Currently serves as a data structure. Advanced algorithms will be added in the next minor release.

v1.4.3 - Build Configuration & MSBuild Fixes

Choose a tag to compare

@FurkanKirat FurkanKirat released this 05 Dec 23:06

🔧 Hotfix v1.4.3

This release resolves build configuration errors introduced in the previous patch regarding artifact output paths.

🐛 Build System Fixes

  • Fixed NETSDK1199 Error: Resolved the MSBuild configuration conflict where UseArtifactsOutput was incorrectly placed in the project file.
  • Project Structure: Standardized the build process to ensure compatibility with both Visual Studio build tools and Unity's compiler.
  • Cleanup: Removed conflicting property definitions from .csproj to prevent build failures in CI/CD pipelines and local environments.

Note: This is a build-configuration-only update. The library's source code, API, and performance characteristics remain identical to v1.4.0.

📦 Installation

For Unity (OpenUPM):

openupm add com.kankangames.structforge

v1.4.2 - Unity 2021 LTS Compatibility & Build Fixes

Choose a tag to compare

@FurkanKirat FurkanKirat released this 05 Dec 22:40

🔧 Maintenance Release v1.4.2

This release resolves compilation errors for Unity 2021.3+ users and cleans up the project structure.

🐛 Critical Fixes

  • Fixed C# Version Mismatch: Enforced LangVersion 9.0 in the project configuration.
    • Fixes: error CS8773: Feature 'file-scoped namespace' is not available in C# 9.0.
    • All file-scoped namespaces have been converted to block-scoped namespaces to ensure full compatibility with Unity 2021 LTS.
  • Fixed Duplicate Attributes: Enabled .NET 8 <UseArtifactsOutput> to redirect build artifacts.
    • Fixes: error CS0579: Duplicate 'System.Reflection.AssemblyVersionAttribute'.
    • Prevents Unity from detecting and conflicting with Visual Studio's bin and obj folders inside the package directory.

Note: The core logic and performance of data structures remain unchanged. This update is purely for build configuration and compatibility.

📦 Installation

For Unity (OpenUPM):

openupm add com.kankangames.structforge

v1.4.1 - Critical Unity Import Fix

Choose a tag to compare

@FurkanKirat FurkanKirat released this 05 Dec 21:32

🩹 Hotfix v1.4.1

This release fixes a critical integration issue for Unity users.

🐛 Bug Fixes

  • Unity Support: Added missing .meta files for all source scripts.
    • Fixes: Resolves the "Asset has no meta file" error when installing via OpenUPM or Git URL.
    • Fixes: Ensures all scripts are correctly recognized and imported by the Unity Editor.

Note for NuGet Users: This update only changes the repository structure for Unity compatibility. The .NET library logic remains identical to v1.4.0.

📦 Installation (Update)

For Unity (OpenUPM):

openupm add com.kankangames.structforge

StructForge v1.3.0: High-Performance & Zero-Allocation Update

Choose a tag to compare

@FurkanKirat FurkanKirat released this 01 Dec 00:06

A massive performance update that pushes the boundaries of standard .NET collections. With hardware-accelerated (AVX) data structures, 100% Garbage-Free game loops, and a redesigned memory architecture, StructForge is now significantly faster and lighter.

StructForge 1.2.0 - The Memory & Cache Optimization Update

Choose a tag to compare

@FurkanKirat FurkanKirat released this 27 Nov 22:44

v1.2.0:

  • Added SfGrid2D | SfGrid3D (Flattened arrays for cache locality).
  • Added SfBitArray | SfBitArray2D | SfBitArray3D (optimized boolean storage).
  • Added SfRingBuffer (Zero-allocation circular queue).
  • Exposed GetRawData() for serialization support.

StructForge 1.1.0 - Major Feature Update

Choose a tag to compare

@FurkanKirat FurkanKirat released this 27 Nov 23:13

What's New:
✨ New Collections:
• SfAvlTree - Self-balancing binary search tree
• SfSortedSet - Ordered set implementation
• SfSortedDictionary<TKey, TValue> - Ordered key-value pairs

🔧 New Algorithms:
• HeapSort - Heap-based sorting
• BinarySearch - Fast array searching
• Shuffle - Randomization utility

📦 Enhanced APIs:
• Renamed interfaces: ISfDataStructure, ISfList, ISfStack, etc.
• SfComparers and SfComparerUtils for flexible comparison
• Improved algorithm organization under SfSorting and SfAlgorithms

🎯 Better Performance:
• Optimized tree balancing in AVL implementation
• Enhanced comparer utilities

Target: .NET 8.0
License: MIT

StructForge 1.0.0 - Initial Release

Choose a tag to compare

@FurkanKirat FurkanKirat released this 27 Nov 23:10

A lightweight, educational C# library for fundamental data structures and algorithms.

📚 Collections:
• Lists: SfList, SfLinkedList
• Stacks & Queues: SfStack, SfQueue
• Heaps: SfBinaryHeap, SfMaxHeap, SfMinHeap
• Priority Queue: SfPriorityQueue<TItem, TPriority>
• Binary Search Tree: SfBinarySearchTree

🔧 Sorting:
• QuickSort
• TreeSort

✨ Features:
• Fully generic implementations
• Custom comparer support
• Educational and practical reference

Target: .NET 8.0
License: MIT