![]() |
VOOZH | about |
dotnet add package Mostlylucid.Common --version 7.5.5
NuGet\Install-Package Mostlylucid.Common -Version 7.5.5
<PackageReference Include="Mostlylucid.Common" Version="7.5.5" />
<PackageVersion Include="Mostlylucid.Common" Version="7.5.5" />Directory.Packages.props
<PackageReference Include="Mostlylucid.Common" />Project file
paket add Mostlylucid.Common --version 7.5.5
#r "nuget: Mostlylucid.Common, 7.5.5"
#:package Mostlylucid.Common@7.5.5
#addin nuget:?package=Mostlylucid.Common&version=7.5.5Install as a Cake Addin
#tool nuget:?package=Mostlylucid.Common&version=7.5.5Install as a Cake Tool
Shared abstractions, base classes, and utilities for Mostlylucid NuGet packages.
Generic caching service abstraction with memory cache implementation:
// Register caching service
services.AddMemoryCachingService<MyData>(options =>
{
options.DefaultExpiration = TimeSpan.FromMinutes(30);
options.MaxEntries = 5000;
});
// Use in your service
public class MyService
{
private readonly ICachingService<MyData> _cache;
public async Task<MyData?> GetDataAsync(string key)
{
return await _cache.GetOrAddAsync(key, async () =>
{
// Fetch from source if not cached
return await FetchFromSourceAsync(key);
});
}
}
Base interfaces and implementations for service statistics:
public class MyService : IServiceStatistics
{
private readonly ServiceStatisticsTracker _stats = new();
public async Task<Result> ProcessAsync(Request request)
{
_stats.IncrementRequests();
var cached = GetFromCache(request);
if (cached != null)
{
_stats.IncrementCacheHit();
return cached;
}
// Process...
}
public long TotalRequests => _stats.TotalRequests;
public long CacheHits => _stats.CacheHits;
public double CacheHitRate => _stats.CacheHitRate;
}
Base class for background services that periodically update data:
public class MyUpdateService : PeriodicUpdateService
{
protected override TimeSpan UpdateInterval => TimeSpan.FromHours(24);
protected override Task<DateTime?> GetLastUpdateTimeAsync(CancellationToken ct)
{
return Task.FromResult(File.GetLastWriteTimeUtc("data.db") as DateTime?);
}
protected override async Task PerformUpdateAsync(CancellationToken ct)
{
await DownloadLatestDataAsync(ct);
}
}
Standard options interfaces for consistent configuration:
public class MyOptions : ICacheableOptions, ITestableOptions
{
public bool Enabled { get; set; } = true;
public TimeSpan CacheDuration { get; set; } = TimeSpan.FromHours(1);
public int MaxCacheEntries { get; set; } = 10000;
public bool EnableTestMode { get; set; } = false;
public string TestModeHeader => "X-Test-Mode";
}
Base class for middleware with test mode support:
public class MyMiddleware : TestModeMiddlewareBase<MyResult>
{
protected override string ResultKey => "MyResult";
protected override string TestModeHeader => "X-Test-Mode";
protected override bool IsTestModeEnabled => _options.EnableTestMode;
protected override MyResult? CreateTestModeResult(string testValue)
{
return new MyResult { TestValue = testValue };
}
protected override async Task<MyResult?> ProcessRequestAsync(HttpContext context)
{
var ip = context.GetClientIpAddress();
return await _service.ProcessAsync(ip);
}
}
Helper for getting client IP addresses with proxy/CDN support:
// Automatically checks CF-Connecting-IP, X-Forwarded-For, X-Real-IP, etc.
var clientIp = context.GetClientIpAddress();
Standard interfaces for database entities:
public class CachedItem : ICachedEntity
{
public string Key { get; set; }
public DateTime CreatedAt { get; set; }
public DateTime UpdatedAt { get; set; }
public DateTime ExpiresAt { get; set; }
public bool IsExpired => DateTime.UtcNow > ExpiresAt;
}
Base classes and helpers for OpenTelemetry instrumentation across all Mostlylucid packages:
using Mostlylucid.Common.Telemetry;
// Get all Mostlylucid activity source names for OpenTelemetry configuration
var sources = TelemetryExtensions.GetMostlylucidActivitySourceNames();
foreach (var source in sources)
{
tracing.AddSource(source);
}
// Activity source names are available as constants
// ActivitySources.BotDetection = "Mostlylucid.BotDetection"
// ActivitySources.GeoDetection = "Mostlylucid.GeoDetection"
// etc.
Available telemetry utilities:
TelemetryActivitySource - Wrapper for System.Diagnostics.ActivitySourceTelemetryOptions - Configuration for telemetry behaviorTelemetryConstants - Standard attribute names following OpenTelemetry semantic conventionsTelemetryExtensions - Helper methods for service registrationActivityExtensions - Extension methods for recording results and exceptionsdotnet add package Mostlylucid.Common
GNU AGPLv3
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 net8.0 is compatible. net8.0-android net8.0-android was computed. net8.0-browser net8.0-browser was computed. net8.0-ios net8.0-ios was computed. net8.0-maccatalyst net8.0-maccatalyst was computed. net8.0-macos net8.0-macos was computed. net8.0-tvos net8.0-tvos was computed. net8.0-windows net8.0-windows was computed. net9.0 net9.0 is compatible. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 is compatible. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
Showing the top 2 NuGet packages that depend on Mostlylucid.Common:
| Package | Downloads |
|---|---|
|
mostlylucid.botdetection
DEPRECATION NOTICE: This package will be renamed to 'stylobot' on June 1 2025. Version 7.0 will publish under the new name with a Stylobot.* namespace. See https://github.com/scottgal/stylobot/blob/main/docs/migration-v7.md Bot detection middleware for ASP.NET Core applications with behavioral analysis, header inspection, IP-based detection, and optional LLM-based classification. |
|
|
mostlylucid.geodetection
DEPRECATION NOTICE: This package will be renamed to 'stylobot.geodetection' on June 1 2025. See https://github.com/scottgal/stylobot/blob/main/docs/migration-v7.md Geographic location detection and routing middleware for ASP.NET Core applications with country-based routing and IP geolocation. |
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 7.5.5 | 49 | 6/16/2026 |
| 7.5.3 | 47 | 6/16/2026 |
| 7.5.2 | 58 | 6/16/2026 |
| 7.5.1 | 52 | 6/16/2026 |
| 7.5.0 | 51 | 6/16/2026 |
| 7.0.1-alpha0 | 88 | 6/4/2026 |
| 7.0.0 | 111 | 6/1/2026 |
| 7.0.0-rc0 | 91 | 5/31/2026 |
| 7.0.0-alpha2 | 88 | 5/31/2026 |
| 7.0.0-alpha1 | 94 | 5/31/2026 |
| 7.0.0-alpha0 | 96 | 5/31/2026 |
| 6.9.0-alpha0 | 93 | 5/28/2026 |
| 6.8.9 | 102 | 5/26/2026 |
| 6.8.8 | 100 | 5/26/2026 |
| 6.8.6 | 99 | 5/26/2026 |
| 6.8.5 | 103 | 5/25/2026 |
| 6.8.4 | 96 | 5/25/2026 |
| 6.8.3 | 88 | 5/25/2026 |
| 6.8.2 | 91 | 5/25/2026 |
| 6.7.7 | 91 | 5/24/2026 |