Releases: akade/Akade.IndexedSet
v1.2.0
What's Changed
- Multi-keys everything: You can now use any index with multiple keys per element, whether it the keys must be unique or you want to index. Opens up lots of possibilities, especially for the text indices #110
- Source-Link support (if it works, hence the beta tag)
- Depricated .NET 7: You can still use the .NET 6 version in your .NET 7 app, but .NET 7 is deprecated as of 14.05.2024 and the explicit target has been removed #127
Note that in theory, the first change is a breaking change as you could theoretically have IEnumerable as keys themselves - which will now bind to the method that picks up the elements as individual keys. However, this would most likely have been unintended an hence, the change is not expected to break anyone.
Full Changelog: v1.1.0...v1.2.0
v1.2.0-beta: Multikeys everything
What's Changed
- Multi-keys everything: You can now use any index with multiple keys per element, whether it the keys must be unique or you want to index. Opens up lots of possibilities, especially for the text indices #110
- Source-Link support (if it works, hence the beta tag)
- Depricated .NET 7: You can still use the .NET 6 version in your .NET 7 app, but .NET 7 is deprecated as of 14.05.2024 and the explicit target has been removed #127
Note that in theory, the first change is a breaking change as you could theoretically have IEnumerable<T>
as keys themselves - which will now bind to the method that picks up the elements as individual keys. However, this would most likely have been unintended an hence, the change is not expected to break anyone.
Full Changelog: v1.1.0...v1.2.0-beta
v1.1.0: .NET 8
What's Changed
- .NET 8 #83
- FrozenDictionary speeds up performance of index name lookups #83
- Real world benchmark by #74, that is included in dotnet/performance
- ConcurrentSet.Read: Method that allows to perform read operations on the underlying set while being protected by a Read-Lock. Allows to perform filtering using multiple indices (or if you must,
FullScan()
) and only paying the materialization cost on the resulting set:concurrentSet.Read(set => set.Where(x => x.Index1, 1).Concat(set.Where(x => x.Index2, 2)));
Includes an analyzer to prevent you from accidently performing writes. #87
Full Changelog: v1.0.1...v1.1.0
v1.0.1
v1.0.0: Growing up
Growing up - It's v1
This release contains various improvements nad some bug fixes. The highlights:
- More TryGetSingle-Methods that might make your life easier (In strange cases, this could be a breaking changes, read more in the PR) #17
- [Fix] Fixes fuzzy searches if the first character was an edit #46
- [Fix] Fixes #41: Add & AddRange cleanup partial adds after an exception #51
- Source generated ConcurrentIndexedSet: Allowing to more easily add additional methods by slashing some of the involved boilerplate #17
- Dependabot: Let the machines work for us 🤖
- Shared test methods for all index types and unifying behavior of different index types. In case that you have been listening to certain exceptions, this could be a breaking change. This will lower the fear of breaking things when introducing new index types, variants of existing types or improving performance 🚀 #50
New Contributors
- @dependabot made their first contribution in #23
Full Changelog: v0.8.0...v1.0.0
Analyzer Release
What's Changed
Full Changelog: v0.7.0...v0.8.0
.NET 7 Release
What's Changed
- Public API Analyzers activated by @akade in #12
- Updated to .NET 7 by @akade in #13 - .NET 6 is still fully supported
Full Changelog: v0.6.0...v0.7.0
v0.6.0 - Simplification for string indices & convenient updating
What's Changed
ReadOnlyMemory<char>
switched toString
/ReadOnlySpan<char>
. Note that this is a breaking change, read more in #11- Convenient methods to update elements within the set including thread-safe variant for the concurrent set. Read more here.
Clear()
Full Changelog: v0.5.0...v0.6.0
v0.5.0
ConcurrentIndexedSet - Happy thread-safe indexing
This release introduces a thread-safe wrapper, the ConcurrentIndexedSet
.
Usage is simple as writing .BuildConcurrent()
instead of Build()
.
Full Changelog: v0.4.0...v0.5.0
v0.4.0
String queries support including fuzzy matching 🚀
Prefix & Suffix-Trie based indices that support efficient string queries:
- Prefix Index supports StartsWith-Queries
- FullText Index additionaly supports Contains-Queries
- Fuzzy string matching support for both StartsWith & Contains