# Pineapple > Pineapple is a free, open-source (Apache-2.0) C# library from MILL5 with Guava-inspired core utilities for .NET 8 and .NET 10. Install with `dotnet add package Pineapple`. SQL Server / EF Core helpers ship separately as `Pineapple.Data`. Built by Microsoft MVP Richard Crane at MILL5. Key facts: - NuGet: Pineapple, Pineapple.Data — version 2.0.0 - Targets: net8.0, net10.0 (1.0.41 is the last netstandard2.0 release) - Namespaces: Pineapple.Common, Pineapple.Data, Pineapple.Threading, Pineapple.Diagnostics, Pineapple.Health, Pineapple.Networking, Pineapple.Extensions - Source: https://github.com/MILL5/pineapple - Website: https://mill5.github.io/pineapple/ - License: Apache 2.0 (free, open source) - NuGet downloads: 110K+ (Pineapple) - Author: Richard Crane (Microsoft MVP, Founder of MILL5) — https://mvp.microsoft.com/en-US/MVP/profile/10ce0bc0-7536-43f6-b28c-e9601a4a0d0d - Publisher: MILL5, LLC — https://mill5.com (Boston-based Microsoft Gold Partner) - Podcast: Inventing Fire with AI — https://inventingfirewith.ai - Support: rich@mill5.com ## Docs - [Getting started](https://mill5.github.io/pineapple/getting-started/): install and first use - [Guard clauses (Preconditions)](https://mill5.github.io/pineapple/guides/preconditions/): CheckIsNotNull, CheckIsNotNullOrWhitespace, CheckIsNotLessThan, CheckIsValidDateRange, CheckIsWellFormedUri, CheckIsCondition - [ShortGuid](https://mill5.github.io/pineapple/guides/shortguid/): 22-char URL-safe Guid encoding; SQL Server GUID ordering (OrderByGuid, SqlCompareTo) - [HashCode](https://mill5.github.io/pineapple/guides/hashcode/): deterministic xxHash32 hash combining, stable across processes - [RowVersion](https://mill5.github.io/pineapple/guides/rowversion/): SQL Server rowversion as a comparable struct - [Rate limiting](https://mill5.github.io/pineapple/guides/rate-limiting/): ResourceGoverner (async calls-per-minute), RateLimiterScope, SafeRateLimiterScope - [Timeouts and backoff](https://mill5.github.io/pineapple/guides/timeouts-and-backoff/): AccurateTimeout, SimpleTimeout, ExponentialWait, Parallelism - [Diagnostics](https://mill5.github.io/pineapple/guides/diagnostics/): TimingScope (ILogger), MeasureScope, CallsPerMinute, ConsoleColorScope - [Cleanup and async](https://mill5.github.io/pineapple/guides/cleanup-and-async/): Cleanup.SafeMethod, SynchronizationContextScope, ImmutableExtensions - [Health and networking](https://mill5.github.io/pineapple/guides/health-and-networking/): Check.IsAlive, Check.IsUrlAvailable, BrotliCompressionHandler - [Pineapple.Data](https://mill5.github.io/pineapple/guides/data/): InformationSchemaContext (EF Core), SqlClient.Check ## Related MILL5 projects - [FastSearch](https://mill5.github.io/FastSearch/) — Fast, low-memory substring search for .NET - [M5.BloomFilter](https://github.com/MILL5/M5.BloomFilter) — Bloom filters for .NET - [yocto](https://github.com/MILL5/yocto) — Tiny IoC container for .NET - [Polygon.Net](https://github.com/MILL5/Polygon.Net) — C# wrapper for the Polygon.io API ## Optional - [FAQ](https://mill5.github.io/pineapple/faq/) - [Changelog](https://mill5.github.io/pineapple/changelog/)