OpenWeatherMap.Cache
An asynchronous .NET Standard 2.0 library that allows you to fetch & cache current weather readings from the OpenWeather API, with built-in resiliency that can extend the cache lifetime in case the API is unreachable. (by MarkCiliaVincenti)
AsyncKeyedLock
An asynchronous .NET Standard 2.0 library that allows you to lock based on a key (keyed semaphores), limiting concurrent threads sharing the same key to a specified number, with optional pooling for reducing memory allocations. (by MarkCiliaVincenti)
OpenWeatherMap.Cache | AsyncKeyedLock | |
---|---|---|
2 | 6 | |
6 | 135 | |
- | - | |
6.7 | 8.7 | |
27 days ago | 3 days ago | |
C# | C# | |
MIT License | MIT License |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
OpenWeatherMap.Cache
Posts with mentions or reviews of OpenWeatherMap.Cache.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-02-13.
-
AsyncKeyedLock: a library for locking based on a key
For example I use it in another library I made at https://github.com/MarkCiliaVincenti/OpenWeatherMap.Cache. Here I ensure that if there's an API request to get the weather of a particular location, whilst it's doing so it will not launch another API request to get the weather of the same location concurrently but instead wait for the result of the ongoing call and use the same response.
-
SemaphoreSlim locking based on a key
It doesn't need to be related to finance or databases. Could be related to physical file access, doing operations on UDP packets received, limiting API requests (eg trying to get weather for a location concurrently doesn't make sense, so wait for the result of the ongoing one and provide the result to the second one, that's what I'm using in https://github.com/MarkCiliaVincenti/OpenWeatherMap.Cache). I'm sure you can be creative and think of plenty of other use cases.
AsyncKeyedLock
Posts with mentions or reviews of AsyncKeyedLock.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-02-13.
-
AsyncKeyedLock: a library for locking based on a key
They're in the wiki at https://github.com/MarkCiliaVincenti/AsyncKeyedLock/wiki
-
Async/Multi Thread Design Question
You can take a look at AsyncKeyedLock, which will lock code according to the key it is given. The key you use can be anything, but should be unique to the mailbox.
-
SemaphoreSlim locking based on a key
Suppose you were processing financial transactions, but while working on one account you wouldn't want to concurrently process a transaction for the same account. Of course, you could just add a normal lock, but then you can only process one transaction at a time. If you're processing a transaction for account A, you may want to also be processing a separate transaction for account B. I have written a library called `AsyncKeyedLock` at https://github.com/MarkCiliaVincenti/AsyncKeyedLock to tackle this common problem. I had previously posted about it at https://www.reddit.com/r/dotnet/comments/y742i7/keyed_semaphore_locks/ and took a lot of feedback on board and completely rewritten it.
-
Keyed semaphore locks
I've updated the library to version 3.2.0 and updated the benchmarks using BenchmarkDotNet.
What are some alternatives?
When comparing OpenWeatherMap.Cache and AsyncKeyedLock you can also consider the following projects:
WeatherApp - Simple GUI app showing current weather using openweathermap api and tkinter.
keyed-semaphores - 🔑🔒 Lock your c# threads by key
synchronization - A collection of async-friendly synchronization objects for .NET and .NET Core
AsyncUtilities - A collection of somewhat useful utilities and extension methods for async programming
NLog - NLog - Advanced and Structured Logging for Various .NET Platforms
AsyncKeyedLockBenchmarks - Benchmarking keyed lockers
GovLib - Interact with US government APIs in .NET
BatchPool - The one-stop generic task batching and management library
FFImageLoading - Fast & Furious Image Loading - Image loading, caching & transforming library for Xamarin and Windows
OpenWeatherMap.Cache vs WeatherApp
AsyncKeyedLock vs keyed-semaphores
OpenWeatherMap.Cache vs synchronization
AsyncKeyedLock vs AsyncUtilities
OpenWeatherMap.Cache vs NLog
AsyncKeyedLock vs AsyncKeyedLockBenchmarks
OpenWeatherMap.Cache vs GovLib
AsyncKeyedLock vs BatchPool
OpenWeatherMap.Cache vs FFImageLoading - Fast & Furious Image Loading
AsyncKeyedLock vs synchronization