প্রকল্প সম্পর্কে

ZLinq হল .NET প্ল্যাটফর্ম (netstandard2.0, 2.1, net8, net9) এবং Unity ও Godot-এর মতো গেম ইঞ্জিনের জন্য একটি উচ্চ-পারফরম্যান্স, শূন্য-অ্যালোকেশন LINQ লাইব্রেরি। এটি একটি struct-ভিত্তিক `ValueEnumerable<T>` প্রদান করে যা মেথড চেইনে অ্যালোকেশন দূর করে, স্ট্যান্ডার্ড LINQ-এর চেয়ে ভালো পারফরম্যান্স অর্জন করে। মূল বৈশিষ্ট্যগুলির মধ্যে রয়েছে: - **99% সামঞ্জস্য** .NET 10-এর LINQ-এর সাথে, যার মধ্যে `Shuffle`, `RightJoin`, `LeftJoin`, `Sequence`, এবং `InfiniteSequence`-এর মতো নতুন অপারেটর অন্তর্ভুক্ত। - **LINQ to Span**: .NET 9/C# 13-এর `allows ref struct` ব্যবহার করে `Span<T>` অপারেশনের জন্য সম্পূর্ণ সমর্থন। - **LINQ to SIMD**: সমর্থিত সংখ্যাসূচক টাইপের (যেমন, `int`, `float`, `double`) জন্য স্বয়ংক্রিয় SIMD ত্বরণ, সর্বোচ্চ পারফরম্যান্সের জন্য `SumUnchecked` সহ। - **LINQ to Tree**: FileSystem, JSON, এবং GameObject-এর মতো ট্রি স্ট্রাকচারের জন্য বিল্ট-ইন সমর্থন, যা হায়ারার্কিক্যাল ডেটার উপর LINQ কোয়েরি সক্ষম করে। - **ড্রপ-ইন রিপ্লেসমেন্ট**: কোড পরিবর্তন ছাড়াই সমস্ত LINQ মেথড স্বয়ংক্রিয়ভাবে ত্বরান্বিত করতে ঐচ্ছিক সোর্স জেনারেটর (`ZLinq.DropInGenerator`)। ব্যবহার সহজ: বিদ্যমান কালেকশনে `AsValueEnumerable()` যোগ করলেই ZLinq মেথড চেইন করা শুরু করা যায়। লাইব্রেরিটি dotnet/runtime-এর System.Linq.Tests থেকে 9000+ টেস্ট পাস করে, যা নির্ভরযোগ্যতা নিশ্চিত করে। এতে অ্যালোকেশন-মুক্ত ম্যাটেরিয়ালাইজেশনের জন্য `ToArrayPool` এবং কালেকশন অ্যালোকেশন এড়াতে `CopyTo`-এর মতো ইউটিলিটিও রয়েছে। মেথড চেইন ভিন্ন টাইপ রিটার্ন করলেও (যা রিঅ্যাসাইনমেন্ট প্রতিরোধ করে), বাস্তবে এটি খুব কমই সমস্যা সৃষ্টি করে। ZLinq পারফরম্যান্স-সংবেদনশীল অ্যাপ্লিকেশন যেমন গেমের জন্য আদর্শ, যেখানে অ্যালোকেশন-মুক্ত LINQ অত্যন্ত গুরুত্বপূর্ণ।