MyAwesomeCache.Library 1.0.0

dotnet add package MyAwesomeCache.Library --version 1.0.0
                    
NuGet\Install-Package MyAwesomeCache.Library -Version 1.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="MyAwesomeCache.Library" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="MyAwesomeCache.Library" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="MyAwesomeCache.Library" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add MyAwesomeCache.Library --version 1.0.0
                    
#r "nuget: MyAwesomeCache.Library, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package MyAwesomeCache.Library@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=MyAwesomeCache.Library&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=MyAwesomeCache.Library&version=1.0.0
                    
Install as a Cake Tool

FastCollections.Net 🚀

FastCollections.Net — это набор высокопроизводительных структур данных для C#, оптимизированных для быстрого поиска, эффективного кэширования и работы под высокой нагрузкой.

Хватит использовать стандартный List.Find(), который заставляет ваш CPU потеть! Переходите на алгоритмически оптимальные решения.


🔥 Основные возможности

  • SmartCache (LRU + TTL): Кэш, который сам выкидывает старые данные и следит за временем жизни (Time To Live) объектов.
  • AutoSortedList: Список, который поддерживает себя в отсортированном состоянии, обеспечивая поиск за ****.
  • Zero-Dependency: Никаких лишних зависимостей. Только чистый и быстрый C#.

🚀 Быстрый старт

Установка

dotnet add package FastCollections.Net

Использование SmartCache (LRU + TTL)

Идеально подходит для кэширования ответов API или тяжелых запросов к БД.

// Емкость 100 элементов, время жизни каждого — 5 минут
var cache = new SmartCacheWithTtl<int, string>(100, TimeSpan.FromMinutes(5));

// Добавление данных
cache.Put(42, "Значение из глубокой базы данных");

// Мгновенное получение
string data = cache.Get(42); 

Использование AutoSortedList

Для данных, которые всегда должны быть под рукой в правильном порядке.

var sortedList = new AutoSortedList<int>();
sortedList.Add(10);
sortedList.Add(1);
sortedList.Add(5);

// Данные уже внутри: [1, 5, 10]
int index = sortedList.IndexOf(5); // Поиск за O(log n)


📊 Почему это быстрее?

Операция Стандартный List FastCollections Профит
Поиск в 1 млн элементов ~500,000 проверок ~20 проверок В 25,000 раз быстрее
Удаление старого кэша Ручное/Полное Автоматическое (LRU) Экономия RAM

🛠 Разработка и тестирование

Если вы хотите внести свой вклад или запустить тесты производительности:

  1. Склонируйте репозиторий.
  2. Откройте терминал и запустите тесты:
dotnet test

  1. Для запуска бенчмарков:
dotnet run -c Release --project Benchmarks


📄 Лицензия

Проект распространяется под лицензией MIT. Используйте его в своих коммерческих проектах совершенно бесплатно!


Tip: Если тебе нравится этот проект, поставь ему ⭐ на GitHub — это мотивирует меня оптимизировать код еще сильнее!


There are no supported framework assets in this package.

Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 154 2/23/2026