Sundew.Base
14.0.0
See the version list below for details.
dotnet add package Sundew.Base --version 14.0.0
NuGet\Install-Package Sundew.Base -Version 14.0.0
<PackageReference Include="Sundew.Base" Version="14.0.0" />
paket add Sundew.Base --version 14.0.0
#r "nuget: Sundew.Base, 14.0.0"
// Install Sundew.Base as a Cake Addin #addin nuget:?package=Sundew.Base&version=14.0.0 // Install Sundew.Base as a Cake Tool #tool nuget:?package=Sundew.Base&version=14.0.0
Sundew.Base
Sundew.Base is a collection of smaller NuGet packages that work on various .NETStandard targets:
Collections
Contains various Linq style extension methods for collection types suchs IEnumerable, IReadOnlyList etc.
- For, ForEach, ForReverse, IndexOf, ToReadOnly.
- AllOrFailed extension allows seemless conversion from IEnumerable<TItem?> to IEnumerable<TItem>.
- OnlyOneOrDefault similar to SingleOrDefault, but never throws.
- DistinctInOrder items only appear once, while preserving order.
- ByCardinality extension allows checking whether an IEnumerable<TItem> is empty, has a single element or multiple elements.
- Value-Array, List and Dictionary* wrappers for Immutable collections with value semantics. (* Not on NETStandard1.2)
Primitives
- Result types (R<T, E> and R<E>)
- Option type T? (through extension methods).
Computation
- Attempter for implementing retry logic.
- Progress reporting
Numeric
- Interval represents an interval of two values.
- Percentage value type.
Time
- DateTime provider.
IO
- Paths - search upwards for relative paths.
Text
- AlignedString and AlignAndLimitFormatProvider providers aligning and length limiting string formatting.
- NamedFormatString allows to define a string format using names rather than indices.
- NaturalTextComparer does logical text comparison for all platforms with performance similar to the Windows specific StrCmpLogicalW.
- AppendItems allows joining items into a StringBuilder.
Initialization
- IInitializable for implementing async initialization logic.
- InitializeAction for wrapping an Action in an IInitializable.
- Initializer provides initialization of IInitializables.
- InitializeFlag for keeping tracking whether initialization is completed.
Disposal
- DisposeAction for wrapping an Action in an IDisposable.
- Disposer provides disposal of a fixed set of IDisposables.
- DisposableState provides an easy way to implement the Dispose(bool) pattern.
- DisposingDictionary allows building a list of IDisposables that supports disposal by a key and otherwise supports disposal in the same order.
- DisposingList allows building a list of IDisposables for disposal in the same order.
IAsyncDisposable is only supported on .NETStandard2.1
Equality
- ReferenceEqualityComparer compares objects by reference.
- TargetEqualityWeakReference is a weak reference that implements equality based on target equality.
Memory
- Buffer allows building arrays
- Split extensions allows Linq style splitting memory in to segments.
Threading and Threading.Jobs
- AsyncLazy provides a cancellable async lazy implementation
- AsyncLock provides async locking.
- Flag is an Interlocked.Exchanged based flag.
- CancellableJob is implementation of a cancellable task.
- ContinusJob is implementation of a cancellable task that keeps running.
Timers
- Timer is an easy to use and modify timer.
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 1.5
- NETStandard.Library (>= 1.6.1)
- Sundew.Base.Collections (>= 14.0.0)
- Sundew.Base.Computation (>= 14.0.0)
- Sundew.Base.Disposal (>= 14.0.0)
- Sundew.Base.Equality (>= 14.0.0)
- Sundew.Base.Initialization (>= 14.0.0)
- Sundew.Base.IO (>= 14.0.0)
- Sundew.Base.Memory (>= 14.0.0)
- Sundew.Base.Numeric (>= 14.0.0)
- Sundew.Base.Primitives (>= 14.0.0)
- Sundew.Base.Reporting (>= 14.0.0)
- Sundew.Base.Text (>= 14.0.0)
- Sundew.Base.Threading (>= 14.0.0)
- Sundew.Base.Threading.Jobs (>= 14.0.0)
- Sundew.Base.Time (>= 14.0.0)
- Sundew.Base.Timers (>= 14.0.0)
-
.NETStandard 2.0
- Sundew.Base.Collections (>= 14.0.0)
- Sundew.Base.Computation (>= 14.0.0)
- Sundew.Base.Disposal (>= 14.0.0)
- Sundew.Base.Equality (>= 14.0.0)
- Sundew.Base.Initialization (>= 14.0.0)
- Sundew.Base.IO (>= 14.0.0)
- Sundew.Base.Memory (>= 14.0.0)
- Sundew.Base.Numeric (>= 14.0.0)
- Sundew.Base.Primitives (>= 14.0.0)
- Sundew.Base.Reporting (>= 14.0.0)
- Sundew.Base.Text (>= 14.0.0)
- Sundew.Base.Threading (>= 14.0.0)
- Sundew.Base.Threading.Jobs (>= 14.0.0)
- Sundew.Base.Time (>= 14.0.0)
- Sundew.Base.Timers (>= 14.0.0)
-
.NETStandard 2.1
- Sundew.Base.Collections (>= 14.0.0)
- Sundew.Base.Computation (>= 14.0.0)
- Sundew.Base.Disposal (>= 14.0.0)
- Sundew.Base.Equality (>= 14.0.0)
- Sundew.Base.Initialization (>= 14.0.0)
- Sundew.Base.IO (>= 14.0.0)
- Sundew.Base.Memory (>= 14.0.0)
- Sundew.Base.Numeric (>= 14.0.0)
- Sundew.Base.Primitives (>= 14.0.0)
- Sundew.Base.Reporting (>= 14.0.0)
- Sundew.Base.Text (>= 14.0.0)
- Sundew.Base.Threading (>= 14.0.0)
- Sundew.Base.Threading.Jobs (>= 14.0.0)
- Sundew.Base.Time (>= 14.0.0)
- Sundew.Base.Timers (>= 14.0.0)
-
net6.0
- Sundew.Base.Collections (>= 14.0.0)
- Sundew.Base.Computation (>= 14.0.0)
- Sundew.Base.Disposal (>= 14.0.0)
- Sundew.Base.Equality (>= 14.0.0)
- Sundew.Base.Initialization (>= 14.0.0)
- Sundew.Base.IO (>= 14.0.0)
- Sundew.Base.Memory (>= 14.0.0)
- Sundew.Base.Numeric (>= 14.0.0)
- Sundew.Base.Primitives (>= 14.0.0)
- Sundew.Base.Reporting (>= 14.0.0)
- Sundew.Base.Text (>= 14.0.0)
- Sundew.Base.Threading (>= 14.0.0)
- Sundew.Base.Threading.Jobs (>= 14.0.0)
- Sundew.Base.Time (>= 14.0.0)
- Sundew.Base.Timers (>= 14.0.0)
-
net8.0
- Sundew.Base.Collections (>= 14.0.0)
- Sundew.Base.Computation (>= 14.0.0)
- Sundew.Base.Disposal (>= 14.0.0)
- Sundew.Base.Equality (>= 14.0.0)
- Sundew.Base.Initialization (>= 14.0.0)
- Sundew.Base.IO (>= 14.0.0)
- Sundew.Base.Memory (>= 14.0.0)
- Sundew.Base.Numeric (>= 14.0.0)
- Sundew.Base.Primitives (>= 14.0.0)
- Sundew.Base.Reporting (>= 14.0.0)
- Sundew.Base.Text (>= 14.0.0)
- Sundew.Base.Threading (>= 14.0.0)
- Sundew.Base.Threading.Jobs (>= 14.0.0)
- Sundew.Base.Time (>= 14.0.0)
- Sundew.Base.Timers (>= 14.0.0)
NuGet packages (11)
Showing the top 5 NuGet packages that depend on Sundew.Base:
Package | Downloads |
---|---|
Pi.System.SundewFork
Package Description |
|
Sundew.TextView.ApplicationFramework
Application framework for implementing text display based applications. |
|
MpcNET.SundewFork
Package Description |
|
Pi.SundewFork
Package Description |
|
Sundew.Pi.IO.Devices
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
14.0.1-u20241109-013422-ci | 23 | 11/9/2024 |
14.0.1-u20241108-210135-ci | 27 | 11/8/2024 |
14.0.1-u20241108-204738-ci | 22 | 11/8/2024 |
14.0.1-u20241104-233553-ci | 39 | 11/4/2024 |
14.0.0 | 36 | 10/31/2024 |
14.0.0-u20241027-231034-ci | 41 | 10/27/2024 |
14.0.0-u20241027-224901-ci | 29 | 10/27/2024 |
14.0.0-u20241027-202321-ci | 29 | 10/27/2024 |
14.0.0-u20241003-093335-ci | 45 | 10/3/2024 |
14.0.0-u20240903-221137-ci | 42 | 9/3/2024 |
14.0.0-u20240619-232154-ci | 45 | 6/19/2024 |
14.0.0-u20240619-222527-ci | 39 | 6/19/2024 |
13.0.3 | 87 | 6/14/2024 |
13.0.3-u20240518-160748-ci | 38 | 5/18/2024 |
13.0.2 | 46 | 5/18/2024 |
13.0.1 | 76 | 4/22/2024 |
13.0.0 | 48 | 4/21/2024 |
13.0.0-u20240421-225911-ci | 50 | 4/21/2024 |
12.0.11 | 64 | 4/10/2024 |
12.0.10 | 68 | 4/1/2024 |
12.0.9 | 66 | 3/7/2024 |
12.0.8 | 92 | 3/6/2024 |
12.0.7 | 62 | 2/17/2024 |
12.0.6 | 69 | 2/15/2024 |
12.0.5 | 98 | 1/11/2024 |
12.0.4 | 84 | 12/20/2023 |
12.0.3 | 59 | 12/20/2023 |
12.0.3-u20231218-221551-ci | 68 | 12/18/2023 |
12.0.2 | 77 | 12/18/2023 |
12.0.1 | 66 | 12/18/2023 |
12.0.0-u20231217-235410-ci | 58 | 12/17/2023 |
12.0.0-u20231217-004830-ci | 81 | 12/17/2023 |
12.0.0-u20231215-231654-ci | 61 | 12/15/2023 |
12.0.0-u20231213-192645-ci | 59 | 12/13/2023 |
12.0.0-u20231208-053800-ci | 82 | 12/8/2023 |
12.0.0-u20231207-231824-ci | 67 | 12/7/2023 |
11.1.1-u20231204-122443-ci | 71 | 12/4/2023 |
11.1.0 | 93 | 12/4/2023 |
11.0.5 | 82 | 11/29/2023 |
11.0.5-u20231128-235732-ci | 58 | 11/28/2023 |
11.0.4 | 72 | 11/26/2023 |
11.0.4-u20231126-224715-ci | 56 | 11/26/2023 |
11.0.3 | 60 | 11/26/2023 |
11.0.3-u20231126-224220-ci | 57 | 11/26/2023 |
11.0.3-u20231126-223517-ci | 58 | 11/26/2023 |
11.0.2 | 60 | 11/26/2023 |
11.0.2-u20231126-220344-ci | 59 | 11/26/2023 |
11.0.2-u20231126-204834-ci | 60 | 11/26/2023 |
11.0.1 | 60 | 11/26/2023 |
11.0.1-u20231126-084441-ci | 56 | 11/26/2023 |
11.0.1-u20231125-093601-ci | 67 | 11/25/2023 |
11.0.1-u20231125-084958-ci | 66 | 11/25/2023 |
11.0.1-u20231124-043154-ci | 67 | 11/24/2023 |
11.0.0 | 68 | 11/20/2023 |
11.0.0-u20231120-225113-ci | 61 | 11/20/2023 |
11.0.0-u20231008-215545-ci | 76 | 10/8/2023 |
11.0.0-u20230913-225400-ci | 71 | 9/13/2023 |
10.0.2 | 210 | 4/25/2023 |
10.0.2-u20230425-230314-ci | 97 | 4/25/2023 |
10.0.1 | 126 | 4/16/2023 |
10.0.1-u20230416-183028-ci | 89 | 4/16/2023 |
10.0.0 | 134 | 4/4/2023 |
10.0.0-u20230404-205341-ci | 106 | 4/4/2023 |
9.0.2 | 164 | 3/23/2023 |
9.0.2-u20230323-222935-ci | 116 | 3/23/2023 |
9.0.2-u20230323-222315-ci | 103 | 3/23/2023 |
9.0.1 | 136 | 3/19/2023 |
9.0.1-u20230319-234935-ci | 113 | 3/19/2023 |
9.0.0 | 128 | 3/16/2023 |
9.0.0-u20230316-230842-ci | 99 | 3/16/2023 |
9.0.0-u20230316-230216-ci | 103 | 3/16/2023 |
9.0.0-u20230316-225941-ci | 107 | 3/16/2023 |
9.0.0-u20230309-233136-ci | 106 | 3/9/2023 |
9.0.0-u20230308-224825-ci | 111 | 3/8/2023 |
8.5.0-u20230124-211210-ci | 120 | 1/24/2023 |
8.4.0 | 226 | 1/8/2023 |
8.4.0-u20230108-222039-ci | 106 | 1/8/2023 |
8.4.0-u20230104-001511-ci | 127 | 1/4/2023 |
8.4.0-u20230103-232731-ci | 120 | 1/3/2023 |
8.4.0-u20221230-085639-ci | 109 | 12/30/2022 |
8.3.3 | 141 | 11/29/2022 |
8.3.3-u20221129-215337-ci | 112 | 11/29/2022 |
8.3.2 | 116 | 11/28/2022 |
8.3.2-u20221128-224653-ci | 108 | 11/28/2022 |
8.3.1 | 122 | 11/26/2022 |
8.3.1-u20221126-220820-ci | 112 | 11/26/2022 |
8.3.0 | 236 | 11/26/2022 |
8.3.0-u20221126-212005-ci | 104 | 11/26/2022 |
8.3.0-u20221126-193947-ci | 100 | 11/26/2022 |
8.3.0-u20221126-155130-ci | 107 | 11/26/2022 |
8.2.1-u20221126-062640-ci | 99 | 11/26/2022 |
8.2.1-u20220821-115451-ci | 130 | 8/21/2022 |
8.2.0 | 159 | 8/17/2022 |
8.2.0-u20220817-225409-ci | 135 | 8/17/2022 |
8.1.2-u20220810-203642-ci | 148 | 8/10/2022 |
8.1.2-u20220802-202525-ci | 143 | 8/2/2022 |
8.1.2-u20220711-200741-ci | 143 | 7/11/2022 |
8.1.2-u20220711-200523-ci | 147 | 7/11/2022 |
8.1.2-u20220623-214900-ci | 138 | 6/23/2022 |
8.1.2-u20220623-214041-ci | 136 | 6/23/2022 |
8.1.2-u20220622-182000-ci | 140 | 6/22/2022 |
8.1.1 | 168 | 6/18/2022 |
8.1.1-u20220618-164600-ci | 160 | 6/18/2022 |
8.1.1-u20211120-051949-ci | 462 | 11/20/2021 |
8.1.0 | 508 | 11/20/2021 |
8.1.0-u20211120-035533-ci | 462 | 11/20/2021 |
8.0.15-u20211120-002647-ci | 548 | 11/20/2021 |
8.0.14 | 259 | 6/18/2021 |
8.0.13 | 254 | 6/18/2021 |
8.0.12 | 179 | 6/18/2021 |
8.0.11 | 5,271 | 6/17/2021 |
8.0.10 | 216 | 6/17/2021 |
8.0.9 | 236 | 6/17/2021 |
8.0.8 | 244 | 6/17/2021 |
8.0.7 | 232 | 6/17/2021 |
8.0.6 | 228 | 6/17/2021 |
8.0.5 | 173 | 6/17/2021 |
8.0.4 | 199 | 6/17/2021 |
8.0.3 | 4,940 | 6/13/2021 |
8.0.2 | 5,006 | 6/13/2021 |
8.0.1 | 5,019 | 6/13/2021 |
8.0.0 | 5,228 | 6/13/2021 |
7.0.3 | 7,082 | 5/2/2021 |
7.0.2 | 5,371 | 5/2/2021 |
7.0.1 | 5,345 | 5/2/2021 |
7.0.0 | 6,066 | 4/7/2021 |
6.0.0 | 22,647 | 12/5/2020 |
5.0.0 | 6,072 | 10/23/2020 |
4.2.3 | 4,234 | 9/24/2020 |
4.2.2 | 1,543 | 8/26/2020 |
4.2.1 | 1,566 | 6/4/2020 |
4.2.0 | 2,495 | 6/4/2020 |
4.1.0 | 3,916 | 3/5/2020 |
4.0.0 | 7,593 | 11/10/2019 |
4.0.0-pre002 | 1,971 | 9/30/2019 |
4.0.0-pre001 | 3,756 | 9/27/2019 |
4.0.0-pre000 | 1,458 | 9/27/2019 |
3.3.10 | 2,700 | 9/20/2019 |
3.3.9 | 2,723 | 9/18/2019 |
3.3.8 | 5,210 | 2/4/2019 |
3.3.7 | 2,658 | 2/3/2019 |
3.3.6 | 1,747 | 2/3/2019 |
3.3.5 | 1,820 | 2/3/2019 |
3.3.4 | 1,835 | 2/3/2019 |
3.3.3 | 1,848 | 2/3/2019 |
3.3.2 | 1,883 | 2/3/2019 |
3.3.1 | 1,857 | 2/3/2019 |
3.3.0 | 3,798 | 1/31/2019 |
3.3.0-pre002 | 1,651 | 1/29/2019 |
3.3.0-pre001 | 1,693 | 1/26/2019 |
3.3.0-pre000 | 1,676 | 1/26/2019 |
3.2.5 | 3,465 | 1/14/2019 |
3.2.4 | 2,771 | 1/13/2019 |
3.2.3 | 1,816 | 1/13/2019 |
3.2.2 | 1,928 | 12/2/2018 |
3.2.1 | 1,837 | 11/29/2018 |
3.0.0 | 2,896 | 3/11/2017 |
2.6.0 | 2,126 | 3/8/2017 |
2.5.0 | 3,664 | 1/31/2017 |
2.4.0 | 2,052 | 1/24/2017 |
2.3.0 | 2,048 | 1/24/2017 |
2.2.0 | 2,146 | 1/23/2017 |
2.1.0 | 2,102 | 1/5/2017 |
2.0.26 | 2,205 | 3/7/2016 |
2.0.25 | 2,272 | 2/13/2016 |
2.0.24 | 2,221 | 2/11/2016 |
2.0.23 | 2,267 | 2/11/2016 |
2.0.22 | 2,036 | 2/11/2016 |
2.0.21 | 2,135 | 2/5/2016 |
2.0.20 | 2,126 | 2/4/2016 |
2.0.19 | 2,644 | 2/1/2016 |
1.0.19 | 2,148 | 2/1/2016 |
1.0.18-alpha | 1,881 | 2/1/2016 |
1.0.17-alpha | 1,931 | 12/19/2015 |
1.0.16-alpha | 2,018 | 12/3/2015 |
1.0.15-alpha | 1,904 | 11/25/2015 |
1.0.14-alpha | 1,988 | 11/21/2015 |
1.0.13-alpha | 1,939 | 11/18/2015 |
14.0 - Result and collections improvements
13.0 - Results improvements
12.0 - Restructing into smaller packages
11.0 - Unified Disposal and Initialization
10.0 - O.None was changed to a property
9.0 - Immutable collections with value semantics, Result type redesign and new Option type, AppendItems replaces AggregateToStringBuilder and JoinToStringBuilder.
8.5 - JoinToStringBuilder and AggregateToStringBuilder improvements
8.4 - AllOrFailed extension for IEnumerable<T>
8.3 - NamedFormatString and AsyncLazy improvements
8.2 - ToEnumerable returns IReadOnlyCollection, Added Disposer ctors to avoid ambiguous calls
8.1 - Added NaturalTextComparer
8.0 - Added NamedFormatProvider, removed Text Split, use Memory.Split instead
7.0 - Split into separate packages and cleanup